2010-07-23 23 views

Répondre

0

un coup d'oeil dans l'API de projection de rayons, vous pouvez tirer un rayon dans une certaine direction et elle retournera tous les éléments qu'elle frappe et leur emplacement, etc. méthode

FindReferencesByDirection Je crois est la méthode qui fait que .

+0

merci, c'est la seule façon de le faire. quelle horrible façon! – learner

0

Dans Revit 2012, utilisez ElementIntersectsSolidFilter lors du filtrage des éléments. Vous fournissez l'entrée Solid qui peut provenir d'un autre élément ou de la géométrie que vous générez par programmation.

0

si vous cherchez des éléments coupés, je vais utiliser BoundingBoxIntersectsFilter, il est filtre rapide avec un impact mineur performance

d'abord, obtenir la géométrie BoîteDeContour

GeometryElement geoElem = wall.get_Geometry(_geoOpt) as GeometryElement; 
BoundingBoxXYZ boundXYZ = geoElem.GetBoundingBox(); 

puis, créez le contour et passé à 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 
    } 
}