EndPointReference方法

时间:2017-06-06 10:33:35

标签: revit-api

我正在努力解决一个问题,即访问管道曲线终点的引用,然后通过doc.Create.Dimension()方法在模型中创建一个维度。我已经尝试使用曲线.EndPointReference(int index)方法但它只返回null值。任何人都可以帮助如何访问这些信息吗?

2 个答案:

答案 0 :(得分: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的“引用”曲线/线。

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));
}

答案 1 :(得分:0)

我认为你应该尝试像

这样的东西
yourPipe.Location.Curve.GetEndPoint(1)

这将为您提供曲线终点的XYZ对象。

此致 阿诺。