更准确地说,我如何确定一个实体是否与另一个元素相交?我查看了 Revit API,找不到任何相关信息。
问问题
1094 次
3 回答
1
在 Revit 2012 中,过滤元素时使用 ElementIntersectsSolidFilter。您提供的输入 Solid 可能来自另一个元素或您以编程方式生成的几何图形。
于 2011-05-26T12:50:51.593 回答
1
如果您要寻找相交的元素,我将使用 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
}
}
于 2014-05-21T09:00:42.057 回答
1
看看光线投影 API,你可以向某个方向发射光线,它会返回它击中的所有元素及其位置等。
我相信 FindReferencesByDirection 方法就是这样做的方法。
于 2010-07-26T12:22:51.900 回答