revit api 使用过滤器
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:
public ICollection<Element> CreateDoorFilter(Autodesk.Revit.DB.Document document)
{
// 找到当前项目中所有的 family instances,并且它们的 category 是 door。
// 创建 ElementClassFilter 过滤器用以获得所有的 FamilyInstance。
ElementClassFilter familyInstanceFilter = new ElementClassFilter(typeof(FamilyInstance)); // 创建 ElementCategoryFilter 过滤器用以获得所有的 OST_Doors。
ElementCategoryFilter doorsCategoryfilter = new ElementCategoryFilter(BuiltInCategory.OST_Doors); // 创建 logic And filter 将上面的两个过滤器合并。
LogicalAndFilter doorInstancesFilter = new LogicalAndFilter(familyInstanceFilter, doorsCategoryfilter); // 将上面的过滤器应用到当前活动的 document。
FilteredElementCollector collector = new FilteredElementCollector(document);
IList<Element> doors = collector.WherePasses(doorInstancesFilter).ToElements(); return doors;
}
revit api 使用过滤器的更多相关文章
- 【Revit API】梁构件支座检查算法
一.前言 应该是第二次写关于Revit API的博文了.虽然在BIM企业中工作,从事桌面BIM软件开发,但是我是不怎么喜欢写Revit API相关的代码.平时更多的是在写界面展示,架构 ...
- Revit API 判断一个构件在某个视图中的可见性
查看 Revit API.发现有Element::IsHidden这个方法.通过UI创建一个element,注意要使得这个element在某些视图可见,但是在另一些视图不可见.运行下面的方法,你会发现 ...
- Revit API 操作共享参数和项目参数
1.获取共享参数 private string GetSharInfo(Autodesk.Revit.ApplicationServices.Application revitApp) { Strin ...
- Revit API射线法读取空间中相交的元素
Revit API提供根据射线来寻找经过的元素.方法是固定模式,没什么好说.关键代码:doc.FindReferencesWithContextByDirection(ptStart, (ptEnd ...
- Revit API 加载族并生成实例图元
在Revit API中加载族可以使用Doc.LoadFamily方法,传入要加载的族文件路径名,但是这种方式有一种缺点,就是如果族文件在当前工程中没有加载的话则返回成功,如果已经加载过,则返回失败,也 ...
- Revit API通过相交过滤器找到与风管相交的对象。
相交过滤器的应用,比几何相交法简便.Excluding剔除 //找到与风管相交的对象,通过相交过滤器. [TransactionAttribute(Autodesk.Revit.Attributes. ...
- Web APi之过滤器执行过程原理解析【二】(十一)
前言 上一节我们详细讲解了过滤器的创建过程以及粗略的介绍了五种过滤器,用此五种过滤器对实现对执行Action方法各个时期的拦截非常重要.这一节我们简单将讲述在Action方法上.控制器上.全局上以及授 ...
- Web APi之过滤器创建过程原理解析【一】(十)
前言 Web API的简单流程就是从请求到执行到Action并最终作出响应,但是在这个过程有一把[筛子],那就是过滤器Filter,在从请求到Action这整个流程中使用Filter来进行相应的处理从 ...
- [原创]java WEB学习笔记44:Filter 简介,模型,创建,工作原理,相关API,过滤器的部署及映射的方式,Demo
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
随机推荐
- Office 365 企业应用以及服务概览 分享记录
博客地址:http://blog.csdn.net/FoxDave 分享时间: 2017年9月14日 分享地点: 部门内部 参与人数: 16人 分享内容: 讲解微软MVP项目计划的相关内容:讲解O ...
- redis_key键
exists k1,判断k1是否存在,‘1’就是存在,‘0’ 就是不存在 move k3 2 --->这里就是说把k3移动到2号库. ‘1’为成功,‘0’为失败 ttl k2 --查看k2 ...
- Final阶段贡献分配规则及实施
作业要求[https://edu.cnblogs.com/campus/nenu/2018fall/homework/2479] 1.分配规则 final阶段开始,我们经过讨论,决定沿用alpha阶段 ...
- api中locale或language字段,传送客户端地域信息,一般为下划线
在请求新闻的分类信息和新闻内容时,需要在api地址中传入local参数,根据用户地区不同返回不同的新闻和分类. local参数,通过navigator.languages[0]获取, 但是,问题来了: ...
- 字典和json 的区别 和转换
前言:字典和json非常像.接下来比较一下两者的异同 先看一下字典的写法: a = {', ', ' } 再看一下json的写法: { "studentInfo": { " ...
- debian镜像下载地址
http://cdimage.debian.org/debian-cd/9.8.0-live/amd64/iso-hybrid/
- python cookies提取——从字符串到字典(一行Python代码)
def extract_cookies(cookie): """从浏览器或者request headers中拿到cookie字符串,提取为字典格式的cookies&quo ...
- c# GetType()和typeof()的区别
c# GetType()和typeof()的区别 C#中任何对象都具有GetType()方法,返回Type类型的当前对象的类型. GetType()是基类System.Object的方法,因此只有 ...
- winform 使用线程
我这里写一个线程里创建一个窗体调用父窗体的方法 private void button4_Click(object sender, EventArgs e) { button4.Text = &quo ...
- outlook2016中如何设置两个账户都自动有各自默认签名
安装了Outlook2016以后,有些朋友不清楚,我们在发送邮件的时候,怎么添加邮件签名,其实在Outlook2016中添加邮件签名的方法也是比较简单的,这里小编介绍下在Outlook2016中设置添 ...