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;
        }
}
相关文章
|
6月前
|
安全 API 数据库
一款支持API文档编辑功能的WIKI文档管理系统
zyplayer-doc是一款现代化的适合团队和个人使用的WIKI文档管理工具,同时还包含数据库文档、Api接口文档
619 0
|
10月前
|
测试技术 API 开发工具
量化实盘接口API对接程式开发编写逻辑规则说明
量化实盘接口API对接程式开发编写逻辑规则说明
|
10月前
ENVI_IDL:批量重投影ModisSwath产品(调用二次开发接口)+解析
ENVI_IDL:批量重投影ModisSwath产品(调用二次开发接口)+解析
142 1
|
12月前
|
测试技术
Sonic 开源移动端云真机测试平台 - 用例编写与回放流程实例演示,任务定时执行、图像相似度定位、公共步骤、公共参数、测试套件等(下)
Sonic 开源移动端云真机测试平台 - 用例编写与回放流程实例演示,任务定时执行、图像相似度定位、公共步骤、公共参数、测试套件等(下)
201 0
|
开发工具 C# C++
Revit2019二次开发外部工具(附加模块)的安装
Revit2019二次开发外部工具(附加模块)的安装
Revit2019二次开发外部工具(附加模块)的安装
Revit二次开发—获取并修改指定标高
Revit二次开发—获取并修改指定标高
|
SQL Oracle 关系型数据库
接口大师v3.13更新:支持一键导入swagger,即刻开放内部API接口
接口大师v3.13更新:支持一键导入swagger,即刻开放内部API接口