2017-06-06 5 views
0

パイプカーブの終点の参照にアクセスして、モデルの次元をdoc.Create.Dimension()メソッドで作成するという問題に苦労しています。すでに使用しようとしていますCurve.EndPointReference(int index)メソッドを使用しますが、null値のみを返します。誰でもこの情報にアクセスする方法を手助けできますか?EndPointReferenceメソッド

答えて

1

も議論とFair59によりここに答えた:

https://forums.autodesk.com/t5/revit-api-forum/endpointreference/td-p/7131328

を答えもビルコーダーから指される:

http://thebuildingcoder.typepad.com/blog/2011/10/retrieving-duct-and-pipe-endpoints.html#comment-3344122037

Fair59の答え:

あなたはおそらく、 LocationCurveを使用して参照を検索しています。 Element.Geometryの一部である "reference" Curve/Lineを使用する必要があります。

Selection sel = this.ActiveUIDocument.Selection; 
Element elem = doc.GetElement(sel.GetElementIds().FirstOrDefault()); 
Options opt = new Options(); 
opt.ComputeReferences = true; 
opt.IncludeNonVisibleObjects = true; 
opt.View = doc.ActiveView; 
Reference ptRef =null; 
foreach(var geoObj in elem.get_Geometry(opt)) 
{ 
    Curve cv = geoObj as Curve; 
    if (cv==null) continue; 
    ptRef = cv.GetEndPointReference(0); 
} 
if (ptRef!=null) 
{ 
    TaskDialog.Show("debug",ptRef.ConvertToStableRepresentation(doc)); 
} 
0

は、私はあなたがあなたのカーブの終点のXYZオブジェクトを与える

yourPipe.Location.Curve.GetEndPoint(1) 

このような何かを試すべきだと思います。

よろしくおねがいします。 Arnaud。

+0

オハイオ州申し訳ありませんが、私はあなたの質問をよく読んで、実際には参照が必要なのを見てください。実際には、私は同じ振る舞いを持っています。ごめんなさい! – Arnaud

+0

ええ、構造的な名前空間に属するオブジェクトでのみエンドポイントに基づいてディメンションを作成することはできません。 –

+0

とにかく、お返事ありがとうございます。 –

関連する問題