这个接口用来过滤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

Revit二次开发之ISelectionFilter 接口的用法相关推荐

  1. Revit二次开发之DMU

    Revit二次开发之DMU   Revit是一款三维联动的设计软件,一处修改处处修改, 比如,在三维视图修改了墙的位置,二维视图上墙的位置也跟着变化了,同时,墙上的门窗也会跟着移动. 这种联动关系是R ...

  2. Revit二次开发之CAD线的翻模--梁的翻模

    最近开始翻模旅程,根据跟群友讨论和网上的搜寻.初步方法为先拾取CAD梁的线段,根据线段所在图层,取得所有梁的最长的那2段线.这样情况下,一条梁仅有2段相等的且平行的直线(不在是一个矩形),具体如图1- ...

  3. Revit二次开发之Revit事务模式(TransactionMode)【比目鱼原创】

    =========[更多高级应用请关注公众号]======== =================================== 由于Revit API对于Revit事务没有默认值,用户必须显式 ...

  4. Revit二次开发之“选择某一楼层的墙”

    其实就是过滤器的用法.这里想要找到同一楼层中的风管,不可行. 要用:duct.ReferenceLevel //选择某一楼层上的墙 [Transaction(TransactionMode.Manua ...

  5. Revit二次开发之“取得所选元素的族名称”

    start //根据族实例FamilyInstance找到Family的方法:FamilyInstance.Symbol.Family [Transaction(TransactionMode.Man ...

  6. Revit二次开发之“PromptForFamilyInstancePlacement()函数动态拖动/鼠标跟随”效果

    布置设备的时候,希望有个拖动的效果,这个函数可以实现. //跟随鼠标拖动效果 [Transaction(TransactionMode.Manual)] [Regeneration(Regenerat ...

  7. Revit二次开发之“遍历材质判断材质类别的新方法”BuiltInParameter.PHY_MATERIAL_PARAM_CLASS...

    老版本API的方法: if (material is MaterialSteel) 新版本API的方法: Parameter curPara = material.get_Parameter(Buil ...

  8. Revit二次开发之“使用ElementTransformUtils.MoveElement()移动元素”

    使用ElementTransformUtils.MoveElement()移动元素,改变元素的Location属性 [Transaction(TransactionMode.Manual)] [Reg ...

  9. Revit二次开发之“创建尺寸标注”

    运行该命令,选中一个可标注的对象,即实现标注. [Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.Transaction ...

  10. Revit二次开发之“为Ribbon设置快捷键”

    目前不支持使用代码为Ribbon设置快捷键. 以下是帮助文档: 单击"视图"选项卡 "窗口"面板 "用户界面"下拉列表 "快捷键& ...

最新文章

  1. python正则表达式模块
  2. Scribe日志收集工具
  3. python学习(九) 网络编程学习--简易网站服务器
  4. 查询mysql 中的空文本_MySQL查询以显示空列的自定义文本
  5. xhell启动mysql_xshell怎么搭建mysql
  6. Matlab Tricks(十一)—— padarray 关于边缘成镜像对称
  7. @JoinColumn 详解
  8. python无头浏览器兼容问题_docker+python无头浏览器爬虫
  9. xu2w显示屏软件下载_LED BEST(LED显示屏控制软件) V2.8 官方版
  10. 树形DP(Simple Tree,玲珑杯 Round#8 B lonlife 1080)
  11. ROS学习之工作空间与创建过程
  12. 【Tomcat】一分钟教你eclipse如何配置tomcat(二)
  13. 让人春分日 哈工科教110132.平面分割
  14. Android系统应用
  15. 微信小程序实现人脸识别注册登录
  16. flutter 登录和退出登录_Flutter从入门到奔溃(一):撸一个登录界面
  17. ulua中lua代码使用反射调用c#详解
  18. 国内计算机类核心期刊投稿交流——分享给后进小硕
  19. 干货文——一文带你搞懂爬虫储存数据库MongoDB
  20. c语言通讯录论文免费下载,C语言通讯录程序设计.doc

热门文章

  1. numpy之数组属性与方法
  2. P3935 Calculating
  3. 字符串,字典,元祖,列表
  4. 译注(1): 为什么大多数编程语言里,= 号被用来做赋值操作符?
  5. idea 设置代码的颜色
  6. 洛谷P3509 [POI2010]ZAB-Frog
  7. linux 驱动 printk 输出变量格式
  8. 多线程基础(三)NSThread基础
  9. MySQL 创建数据库并且指定编码
  10. 个人生活的量化分析(三):考研英语初探