博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
revit api 使用过滤器
阅读量:4322 次
发布时间:2019-06-06

本文共 1275 字,大约阅读时间需要 4 分钟。

1. Door在Revit里面的element类型是FamilyInstance。 

2. Door在Revit里面的category类型是OST_Doors。 
3. 想要过滤特定类型的element需要ElementClassFilter。 
4. 想要过滤特定类型的category需要ElementCategoryFilter。 
5. 想要让两种类型的filter同时起作用需要LogicalAndFilter。 
6. 找到文档(Document)里的element需要FilteredElementCollector,可以将其认为是文档中element的管理器。 
7. 将filter传递给FilteredElementCollector即可得到所有能够通过filter的element。

 

Demo:

1 public ICollection
CreateDoorFilter(Autodesk.Revit.DB.Document document) 2 { 3 // 找到当前项目中所有的 family instances,并且它们的 category 是 door。 4 // 创建 ElementClassFilter 过滤器用以获得所有的 FamilyInstance。 5 ElementClassFilter familyInstanceFilter = new ElementClassFilter(typeof(FamilyInstance)); 6 7 // 创建 ElementCategoryFilter 过滤器用以获得所有的 OST_Doors。 8 ElementCategoryFilter doorsCategoryfilter = new ElementCategoryFilter(BuiltInCategory.OST_Doors); 9 10 // 创建 logic And filter 将上面的两个过滤器合并。11 LogicalAndFilter doorInstancesFilter = new LogicalAndFilter(familyInstanceFilter, doorsCategoryfilter);12 13 // 将上面的过滤器应用到当前活动的 document。14 FilteredElementCollector collector = new FilteredElementCollector(document);15 IList
doors = collector.WherePasses(doorInstancesFilter).ToElements();16 17 return doors;18 }

 

转载于:https://www.cnblogs.com/laoxia/p/8343962.html

你可能感兴趣的文章
ajax跨域,携带cookie
查看>>
BZOJ 1600: [Usaco2008 Oct]建造栅栏( dp )
查看>>
洛谷 CF937A Olympiad
查看>>
Codeforces Round #445 C. Petya and Catacombs【思维/题意】
查看>>
用MATLAB同时作多幅图
查看>>
python中map的排序以及取出map中取最大最小值
查看>>
ROR 第一章 从零到部署--第一个程序
查看>>
<form>标签
查看>>
vue去掉地址栏# 方法
查看>>
Lambda03 方法引用、类型判断、变量引用
查看>>
was集群下基于接口分布式架构和开发经验谈
查看>>
MySQL学习——MySQL数据库概述与基础
查看>>
ES索引模板
查看>>
HDU2112 HDU Today 最短路+字符串哈希
查看>>
JPanel重绘
查看>>
图片放大器——wpf
查看>>
SCALA STEP BY STEP
查看>>
cocos2d-x学习笔记
查看>>
MySql中的变量定义
查看>>
Ruby数组的操作
查看>>