仮想の「トリム/延長」平面として使用する 2 つの端点を見つけるために、さまざまな Revit カテゴリの要素を使用するコードに取り組んでいます。私はこれをディテールラインと構造フレーミングに使用しています......
switch (Ref_Plane_Category){
case "Lines": {
LocationCurve xloc = Ref_Plane.Location as LocationCurve;
End3 = xloc.Curve.GetEndPoint(0);
End4 = xloc.Curve.GetEndPoint(1); break;
}
case "Structural Framing": {
Options options = new Options();
AnalyticalModel xmodel = Ref_Plane.GetAnalyticalModel();
Curve xcurve = xmodel.GetCurve();
End3 = xcurve.GetEndPoint(0); End4 = xcurve.GetEndPoint(1); break;
}
ただし、グリッドと参照面に同様の方法を使用すると、Revit はエラーで応答します(通常、「オブジェクト参照がオブジェクトのインスタンスに設定されていません」)。「Snoop」を調べましたが、「Plane」などのタブ内にあるリストされた値に到達する方法が明らかではないようです。同様の情報にアクセスする方法を知っている人はいますか (グリッドまたは参照面上の任意の 2 点など)? 現在、抽出したポイントをバイパスして使用しています....
case "Grids": {
ObjectSnapTypes Snapper = ObjectSnapTypes.Nearest | ObjectSnapTypes.Endpoints;
End3 = m_doc.Selection.PickPoint(Snapper, "Pick One Point On Grid");
ObjectSnapTypes Snappur = ObjectSnapTypes.Endpoints | ObjectSnapTypes.Nearest;
End4 = m_doc.Selection.PickPoint(Snappur, "Pick Another Point On Grid"); break;
}
...しかし、使用可能なポイントを直接見つける方がはるかに優れています。