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
天祺围棋:www.tianqiweiqi.com呵呵

凡事以大气象去面对,优秀是一种习惯。

原文地址:https://www.cnblogs.com/greatverve/p/ISelectionFilter.html