zoukankan      html  css  js  c++  java
  • Revit常用的元素过滤方法

    过滤器过滤元素

    • 创建过滤收集器
    Document document = revit.Application.ActiveUIDocument.Document;
    FilteredElementCollector collector = new FilteredElementCollector(document);  
    • 过滤元素
    1. 快速过滤
      collector.OfCategory(BuiltInCategory.OST_Walls).ofClass(typeof(FamilyInstance))
      OfCategory过滤类别,包括FamilySymbol及FamilyInstance,先通过OfCategory进行过滤可以提高效率,通过OfClass可以获取实例或者类型。
    2. 通用过滤
      LogicalAndFilter doorInstancesFilter =new LogicalAndFilter(familyInstanceFilter, doorsCategoryfilter);
      
      FilteredElementCollector collector = new FilteredElementCollector(document);
      
      ICollection<ElementId> doors = collector.WherePasses(doorInstancesFilter).ToElementIds();

    框选构件并筛选构件

    public class WallFilter : ISelectionFilter
    {
       public bool AllowElement(Element element)
       {
          if (element is Wall)
          {
             return true;
          }
          return false;
       }
       public bool AllowReference(Reference refer, XYZ point)
       {
          return false;
       }
    }
    // code in command
    IList<Element> elements = uiDoc.Selection.PickElementsByRectangle(new WallFilter(), "请选择墙");
    foreach (Element element in elements)
    {
       // do something
    }

  • 相关阅读:
    SpringBoot 整合Redis
    IDEA 修改之前保存的git地址的账号和密码
    SpringBoot 上传文件功能
    JAVA结合 JSON Web Token(JWT) 工具类
    SpringBoot 整合Spring Security框架
    Sublime Text3 设置
    Python 正则表达式
    Django+uWSGI+Nginx 部署网站
    web 设计中引入字体
    HTML 超链接返回上一级
  • 原文地址:https://www.cnblogs.com/shuai1991/p/13885794.html
Copyright © 2011-2022 走看看