端点引用方法

EndPointReference method

我正在努力解决一个问题,即通过 doc.Create.Dimension() 方法访问管道曲线终点的参考,然后在模型中创建尺寸。我已经尝试使用Curve.EndPointReference(int index) 方法,但它 returns 只有空值。任何人都可以帮助如何访问此信息?

我想你应该试试

yourPipe.Location.Curve.GetEndPoint(1)

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

此致, 阿诺.

Fair59也在这里讨论和回答:

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

The Building Coder 也指出了答案:

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