首页 > 其他分享 >Revit查询元素的方法

Revit查询元素的方法

时间:2022-10-15 23:01:45浏览次数:41  
标签:元素 OST listBCategory Add new 查询 collector Revit BuiltInCategory


FilteredElementCollector collector = new FilteredElementCollector(m_Doc);

            collector.OfCategory(BuiltInCategory.OST_MechanicalEquipmentTags);

collector.OfClass(typeof(FamilyInstance)).OfCategory(BuiltInCategory.OST_MechanicalEquipment).ToElements();

FilteredElementCollector collector = new FilteredElementCollector(UiDoc.Document, UiDoc.Document.ActiveView.Id);
                    Outline outLine = new Outline(Min, Max);
                    BoundingBoxIntersectsFilter filter = new BoundingBoxIntersectsFilter(outLine, 0.001);
                    GetAllElement = collector.WherePasses(filter).ToElements().Where(ee => IsometricDrawingTools.CheckBoxOutLineGetElement(CurrSelectMepSys as PipingSystem, ee)).ToList();
                    isGetDone = GetAllNeedDrawElementData(GetAllElement);

            BoundingBoxIntersectsFilter intersectsFilter = new BoundingBoxIntersectsFilter(outLine);
            LogicalAndFilter andFilter = new LogicalAndFilter(intersectsFilter, elementFilter);
            FilteredElementCollector collector = new FilteredElementCollector(doc);
            List<Element> collection = collector.WherePasses(andFilter).ToElements().ToList();

            FilteredElementCollector collector = new FilteredElementCollector(doc, doc.ActiveView.Id);
            LogicalOrFilter orFilter = new LogicalOrFilter(GetElementFilter());
            double[] viewRange = RevitAPIUIOperate.GetViewRange2(doc.ActiveView);

        private IList<ElementFilter> GetElementFilter()
        {
            IList<ElementFilter> listFilter = new List<ElementFilter>();

            IList<BuiltInCategory> listBCategory = GetListCategory();

            foreach (var item in listBCategory)
            {
                ElementCategoryFilter ecf = new ElementCategoryFilter(item);
                listFilter.Add(ecf);
            }
            return listFilter;
        }

 private IList<BuiltInCategory> GetListCategory()
        {
            IList<BuiltInCategory> listBCategory = new List<BuiltInCategory>();
            listBCategory.Add(BuiltInCategory.OST_PipeCurves);
            listBCategory.Add(BuiltInCategory.OST_PipeFitting);
            listBCategory.Add(BuiltInCategory.OST_PipeAccessory);
            listBCategory.Add(BuiltInCategory.OST_DuctCurves);
            listBCategory.Add(BuiltInCategory.OST_DuctFitting);
            listBCategory.Add(BuiltInCategory.OST_DuctAccessory);
            listBCategory.Add(BuiltInCategory.OST_DuctTerminal);
            listBCategory.Add(BuiltInCategory.OST_PlumbingFixtures);
            listBCategory.Add(BuiltInCategory.OST_MechanicalEquipment);
            listBCategory.Add(BuiltInCategory.OST_Sprinklers);
            listBCategory.Add(BuiltInCategory.OST_PipeSchedules);
            listBCategory.Add(BuiltInCategory.OST_Walls);
            listBCategory.Add(BuiltInCategory.OST_Windows);
            listBCategory.Add(BuiltInCategory.OST_Doors);
            listBCategory.Add(BuiltInCategory.OST_Grids);
            listBCategory.Add(BuiltInCategory.OST_MechanicalEquipmentTags); //机械设备标注
            listBCategory.Add(BuiltInCategory.OST_PipeTags); //管道标记
            listBCategory.Add(BuiltInCategory.OST_DuctTags); // 风管标记
            listBCategory.Add(BuiltInCategory.OST_IOSDetailGroups);
            listBCategory.Add(BuiltInCategory.OST_Columns);
            listBCategory.Add(BuiltInCategory.OST_StructuralColumns);
            listBCategory.Add(BuiltInCategory.OST_RoomTags);
            return listBCategory;
        }

标签:元素,OST,listBCategory,Add,new,查询,collector,Revit,BuiltInCategory
From: https://blog.51cto.com/biyusr/5759380

相关文章

  • 27.移除元素
    参考https://programmercarl.com/0027.移除元素.html#思路题目给你一个数组nums 和一个值val,你需要原地移除所有数值等于 val 的元素,并返回移除后数组的新长度......
  • elasticsearch的查询数大于10000查询失败
    错误信息Causedby:ElasticsearchException[Elasticsearchexception[type=illegal_argument_exception,reason=Resultwindowistoolarge,from+sizemustbeles......
  • thinkphp5 如何查询 以逗号间隔的数据
    例如1,2,3,4之类的id或者其他组成的数值字符串存入字段中,然后会有查询的需求,例如我们需要查询包含1的所有的数据,这时我们可以使用find_in_set()函数;$id=4;Db::name('men......
  • 运用离散化缩小不必要的范围+差分:只通过对两个区间的端点进行加减操作即可使这段区间
    原题链接:https://codeforces.com/gym/403650/problem/C   题目的原意是:给定n个区间,求1-1e9这个数轴上,对于每一个数点,在给定区间上出现过的最大值一个最朴素的想法......
  • 移除链表元素
    举个例子,链表里有元素,我们想要移除的元素值为1如下:个人认为的主要思想就是:先记录后删除1->5->2->5->8->1->0NULL0->5->2->5->8->1->0对于头结点我们有三种情况头结......
  • sql left联表查询将结果插入到别一数据库表中
    a数据库多表查询selecta.id,a.title,a.typeid,b.body,a.pubdate,a.keywords,a.descriptionfromras_archivesaleftjoinras_addonarticlebona.id=b.aidwherea.t......
  • Access自定义函数,实现递归查询
    Access自定义函数,实现递归查询介绍有一个数据表,表名为测试表,表结构及内容如下:表结构字段名称数据类型说明(可选)编号数字主键父节点数字关联编号字段......
  • DOS窗口命令和单表简单查询
    相关术语:DB:数据库:在硬盘上以文件的方式存在DBMS:数据库管理系统:例如mysql,oracle,sqlserver…SQL:一门适用于所有DBMS,对DB进行操作的标准规划语言,DQL:数据库查询语句select,D......
  • flex竖排列元素排列方向
    flex竖排列元素排列方向一、flex-direction:(元素排列方向)※flex-direction:row(横向从左到右排列==左对齐)※flex-direction:row-revers......
  • 【算法训练营day3】LeetCode203. 移除链表元素 707. 设计链表 206. 反转链表
    【算法训练营day3】LeetCode203.移除链表元素707.设计链表206.反转链表LeetCode203.移除链表元素题目链接:203.移除链表元素初次尝试题目比较简单,之前刷过链表的......