2010-07-23 76 views

回答

0

看看入射线投影API,你可以在某个方向拍摄光线,它会返回所有它碰到的元素和它们的位置等

FindReferencesByDirection方法我认为是确实的方法。

+0

谢谢,这是做到这一点的唯一方法。多可怕的方式! – learner 2010-12-25 20:26:31

0

在Revit 2012中,在过滤元素时使用ElementIntersectsSolidFilter。您提供的输入Solid可能来自另一个元素或来自编程生成的几何。

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 
    } 
} 
相关问题