Revit二次开发之ISelectionFilter 接口的用法

这个接口用来过滤Revit对象,比如你希望选择元素的时候,只选择某一类。
public static IList<Element> GetManyRefByRectangle(UIDocument doc)
{
    ReferenceArray ra 
= new ReferenceArray();
    ISelectionFilter selFilter 
= new MassSelectionFilter();
    IList
<Element> eList = doc.Selection.PickElementsByRectangle(selFilter, 
        
"Select multiple faces"as IList<Element>;
    
return eList;
}
//重写两个方法,添加过滤条件。
public class MassSelectionFilter : ISelectionFilter
{
    
public bool AllowElement(Element element)
    {
        
if (element.Category.Name == "Mass")
        {
            
return true;
        }
        
return false;
    }

    
public bool AllowReference(Reference refer, XYZ point)
    {
        
return false;
    }
}

from:http://revit.5d6d.com/thread-1220-1-1.html
posted @ 2011-09-08 08:08  大气象  阅读(1698)  评论(0编辑  收藏  举报
http://www.tianqiweiqi.com