Revit二次开发—ISelectionFilter接口过滤用户选择

简介: Revit二次开发—ISelectionFilter接口过滤用户选择

过滤元素选择

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;
        }
}

过滤几何选择

public void SelectPlanarFaces(Autodesk.Revit.DB.Document document)
{
        UIDocument uidoc = new UIDocument(document);
        ISelectionFilter selFilter = new PlanarFacesSelectionFilter(document);
        IList<Reference> faces = uidoc.Selection.PickObjects(ObjectType.Face, 
                selFilter, "Select multiple planar faces");
}
public class PlanarFacesSelectionFilter : ISelectionFilter
{
        Document doc = null;
        public PlanarFacesSelectionFilter(Document document)
        {
                doc = document;
        }
        public bool AllowElement(Element element)
        {
                return true;
        }
        public bool AllowReference(Reference refer, XYZ point)
        {   
                if (doc.GetElement(refer).GetGeometryObjectFromReference(refer) is PlanarFace)
                {
                        // Only return true for planar faces. Non-planar faces will not be selectable 
                        return true; 
                }
                return false;
        }
}
相关文章
ENVI_IDL:批量重投影ModisSwath产品(调用二次开发接口)+解析
ENVI_IDL:批量重投影ModisSwath产品(调用二次开发接口)+解析
213 1
|
测试技术 API 开发工具
量化实盘接口API对接程式开发编写逻辑规则说明
量化实盘接口API对接程式开发编写逻辑规则说明
|
缓存 安全 算法
CleanMyMac X4.20都包含有哪些功能?
CleanMyMac X4.20版是一款运行在macOS系统中的专业清理软件,以安装方便、使用简易、功能完善等特点而闻名。CleanMyMac X在功能方面可以说是做到了极致,下面让我们看一下CleanMyMac X都包含有哪些功能。
109 0
|
开发工具 C# C++
Revit2019二次开发外部工具(附加模块)的安装
Revit2019二次开发外部工具(附加模块)的安装
Revit2019二次开发外部工具(附加模块)的安装
Revit功能与其API功能的对比
Revit功能与其API功能的对比
Revit功能与其API功能的对比
|
监控 API
135813-01 是由 Bently Nevada 开发的显示接口 I/O 模块
BENTLY 135813-01 - 显示接口 I/O 模块
109 0
Revit二次开发—获取并修改指定标高
Revit二次开发—获取并修改指定标高
|
XML 数据格式
Revit两种外部接口的插件注册文件addin
Revit两种外部接口的插件注册文件addin