获取房间的边界可以用Room里的
public IList<IList<BoundarySegment>> GetBoundarySegments( SpatialElementBoundaryOptions options )这个方法返回了所有Room的边界信息。
BoundarySegment 这里面包含了没一个边界的信息,它主要包括:
Methods:
GetCurve 返回对应的Curve
Properties:
这里面从Revit2016开始 Curve,Document,Element,就都废弃了,不能用了,
而Curve 可以通过GetCurve获取,Element通过ElementId获取
如果边界在链接模型里可以LinkElementId 获取
关键代码如下:
SpatialElementBoundaryOptions opts = new SpatialElementBoundaryOptions();
IList<IList<BoundarySegment>> blist = room.GetBoundarySegments(opts);
List<Curve> allCurves = new List<Curve>();
IList<BoundarySegment> flist = blist.First();
string info = null;
foreach (BoundarySegment bs in flist)
{
allCurves.Add(bs.GetCurve());
Element telm = doc.GetElement(bs.ElementId);
info += telm.Name + "\n";
}
TaskDialog.Show("info", info);
博主会经常更新一些技术文章,请大家多多关注,
源码下载请加qq群480950299