2010-07-23 62 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 
    } 
} 
相關問題