更确切地说,如何确定Solid是否与另一个元素相交? 我查看了Revit API,但找不到任何相关信息。
答案 0 :(得分:0)
答案 1 :(得分:0)
在Revit 2012中,在过滤元素时使用ElementIntersectsSolidFilter。您提供输入Solid,它可以来自另一个元素,也可以来自您以编程方式生成的几何体。
答案 2 :(得分:0)
如果您正在寻找相交的元素,我会使用BoundingBoxIntersectsFilter,它的快速过滤器会对性能产生轻微影响
首先,获取几何边界框
GeometryElement geoElem = wall.get_Geometry(_geoOpt) as GeometryElement;
BoundingBoxXYZ boundXYZ = geoElem.GetBoundingBox();
然后,创建轮廓并传递给BoundingBoxIntersectsFilter
if (boundXYZ != null)
{
outline = new Outline(boundXYZ.Min, boundXYZ.Max);
boundingFilter = new BoundingBoxIntersectsFilter(outline);
var filterElems = new FilteredElementCollector(elem.Document).WherePasses(boundingFilter).ToElementIds();
foreach (var item in filterElems)
{
//retrieve intersected elements
}
}