エッジは、特定の面の境界曲線です。
EdgeLoops プロパティを使用して Face のエッジを繰り返します。各ループは面上の閉じた境界を 1 つ表します。エッジは常に 0 から 1 まででパラメータ化されます。エッジの曲線表現は、Edge.AsCurve()と Edge.AsCurveFollowingFace()関数で展開することができます。
通常、エッジは 2 つの面の交差を計算することによって定義されます。しかし Revit ではグラフィックスの描画時にこの交差を再計算しません。つまり、エッジは点のリスト(直線エッジの端点)と曲線エッジの分割リストを保存します。点は、2 つの面のパラメトリック座標です。これらの点は TessellateOnFace()メソッドによって使用できます。
断面によって「切断エッジ」が生成されます。これらは人工的なエッジであり、モデルレベルのジオメトリの一部分を表さないので、参照を提供しません。
方向は、通常、最初の面(Revit が特定のエッジを認識した任意の面の最初の表現)では時計回りです。ただし、2 つの異なる面が 1 つの特定のエッジで一致し、どちらの面を対象としているかに関わらずエッジは同じパラメトリック方向を持つため、場合によっては、特定の面上のエッジの方向を判断する必要があります。
この仕組みを下の図に表します。面 0 の場合、エッジはすべてパラメータ化された時計回りになります。面 1 の場合、面 0 と共有するエッジは再パラメータ化されません。つまり、面 1 を基準にして、エッジは逆の方向を持ち、一部のエッジは両方のエッジのパラメータが 0 (または 1)になる部分で交差します。
エッジのパラメータ化
API サンプル「PanelEdgeLengthAngle」は、特定の面に対して反転しているエッジを識別する方法を表しています。エッジの端点における接線ベクトルを使用して、隣接するエッジ間の角度を計算し、正しい角度を計算するために、各交差において接線ベクトルが反転していないかどうかを検出します。
PanelEdgeLengthAngle の結果