Revit如何通过过滤器获取元素


今天小编给大家分享一下Revit如何通过过滤器获取元素的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。获得元素的办法:1、创建一个收集器(Collector)FilteredElementCollector fil = new FilteredElementCollector(doc);这里举个栗子:你妈刚从超市买了过年要吃的蚕豆和绿豆,结果被你个混小子打破袋子,全都掉在地上混在一起,你妈要你马上给她整理好,你天资聪慧不想一颗一颗去捡,想了一个好办法就是用筛子筛选出来,那么我们要先把散落在地上的大豆和绿豆用簸箕扫起来,收集器在这里就是簸箕的作用,把散落在doc的构件收集起来装在fil这个容器里。2、创建一个过滤器ElementClassFilter el = new ElementClassFilter(typeof(Wall));(类过滤器)过滤器就是我们的筛子,可以用来筛选蚕豆和绿豆,留下你想要的。当然筛子的种类有多种多样,我们的API同样提供了多种筛子。ElementCategoryFilter eld = new ElementCategoryFilter(BuiltInCategory.OST_Doors);(类别过滤器)过滤好了以后,要拿出来你需要的东西,那么我们需要进行获取。(1)调用fil.WherePasses( );fil.WherePasses(el);这样我们就获取了收集器fil中的墙的类型。 fil2.WherePasses(el2);我们获取了收集器fil2里的所有的门。 有些人可能会有疑问,或者会犯这种错误:在同一个收集器里调用两次.WherePasses( ),这会造成一个问题你所取得的构件是0个。因为收集器你筛选一遍获得墙之后,你再去筛选就只剩下墙了,你不可能再去筛选出来门。可你能从墙里再筛选出来叠层墙。这就像你在猪圈里能找到猪,在猪里能找到小黑猪,但你肯定找不到驴,是一个道理。(可能比喻不够恰当,但就是这个理。)(2)利用逻辑过滤器 ElementClassFilter el = new ElementClassFilter(typeof(FamilyInstance));(过滤出族实例) ElementCategoryFilter eld = new ElementCategoryFilter(BuiltInCategory.OST_Windows);(过滤出窗户) 利用逻辑过滤器来过滤族实例里的窗户: L 香港云主机ogicalAndFilter door = new LogicalAndFilter(el, eld);(3)of的简便方法利用of来获取墙: fil.OfClass(typeof(Wall));利用of来获取窗户: fil.OfClass(typeof(FamilyInstance)).OfCategory(BuiltInCategory.OST_Windows);以上就是“Revit如何通过过滤器获取元素”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注开发云行业资讯频道。

相关推荐: win10无法启动承载网络怎么处理

这篇文章主要讲解了“win10无法启动承载网络怎么处理”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“win10无法启动承载网络怎么处理”吧!解决方法:1、打开设备管理器,找到自己的无线网卡。如图:2、右键无线网…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 07/13 18:06
下一篇 07/13 18:06

相关推荐