完善主体资料,免费赠送VIP会员!
* 主体类型
* 企业名称
* 信用代码
* 所在行业
* 企业规模
* 所在职位
* 姓名
* 所在行业
* 学历
* 工作性质
请先选择行业
您还可以选择以下福利:
行业福利,领完即止!

下载app免费领取会员

NULL

ad.jpg

【过滤器系列02】一键创建管道/风管系统过滤器:30秒搞定几十套系统配色

发布于:2026-10-09 22:22:03

网友投稿

更多

做机电BIM的朋友都有体会:项目里的系统五花八门,送风、回风、排风、新风、给水、排水、消防喷淋、消火栓……每个系统都要有自己的颜色,方便识图和出图。

手动建过滤器的痛苦,谁建谁知道。

今天这篇,就教你怎么用我们的插件,把半小时的活压缩到30秒。


一、功能整体介绍和视频展示

先看痛点

建系统过滤器这件事,说起来不难,但特别磨人:

  • • 每个系统要建一个过滤器,名字要对、规则要对、颜色要对
  • • 风管系统和管道系统要分开建,类别不一样,参数也不一样
  • • 项目中途加个系统,又得从头再来一遍
  • • 不同项目之间,过滤器配色还不统一

关键是,这活没有任何技术含量,纯体力。一个有经验的BIM工程师,把时间耗在这上面,纯粹是浪费。

功能能做什么

我们的「管道系统过滤器」和「风管系统过滤器」功能,核心就是一件事:

自动识别项目中的所有系统,按系统类型批量创建过滤器。

具体来说:

管道系统过滤器支持:

  • • 自动识别所有管道系统类型(给水、排水、雨水、消防、喷淋、消火栓等)
  • • 按系统名称自动生成过滤规则,匹配 System Type 参数
  • • 内置专业配色方案,也支持用户自定义颜色
  • • 支持管道、管件、管路附件、管道保温等多类别同时过滤
  • • 一键生成,自动按系统名称命名

风管系统过滤器支持:

  • • 自动识别所有风管系统类型(送风、回风、排风、新风、排烟、加压送风等)
  • • 支持风管、风管管件、风管附件、风管保温、风道末端等多类别
  • • 同样支持配色方案自定义和预设
  • • 自动命名,名称规范统一

两个操作逻辑基本一致,一个给水专业用,一个给暖通专业用。看完视频你会发现:操作简单到离谱,全是自动的。


二、功能整体思路和实现技术步骤

设计思路

这个功能的设计原则就一条:能自动的绝不手动,能默认的绝不询问。

用户打开功能,看到的应该是:

  • • 系统已经识别好了,列在那里
  • • 配色已经有默认方案,直接能用
  • • 要勾的类别已经按专业习惯选好了
  • • 用户只需要点「确定」就行

高级用户当然可以自定义,但默认值要让新手也能直接用出好效果。

技术实现步骤

第一步:遍历项目,收集所有系统

遍历项目中的 MEPSystem 集合
  ↓
按系统类型分类(PipingSystem / DuctSystem)
  ↓
提取系统名称、系统类型、标识符等信息
  ↓
去重、排序,展示在UI列表中

这里有个细节:Revit 项目中可能存在没有被使用的系统类型,我们做了一个过滤——只显示项目中实际有管线的系统,避免列表里一堆没用的系统干扰用户。

第二步:构建过滤规则

每个系统过滤器的核心是它的过滤规则,我们用的是 System Type 参数匹配:

过滤器类别:管道 / 管件 / 管路附件 / ...
  ↓
过滤规则:System Type 等于 "[系统名称]"
  ↓
多类别用 OR 逻辑组合,保证同系统的所有图元都被过滤到

为什么选 System Type 而不是 System Name?因为 System Name 是实例参数,同一个系统类型下可以有多个系统名称,用类型参数过滤更稳定。

第三步:应用图形覆盖设置

创建完过滤器后,自动设置图形覆盖:

  • • 投影/截面线颜色:按配色方案分配
  • • 填充图案:默认无填充(可配置)
  • • 透明度:默认0(可配置)
  • • 线型:默认实线(可配置)

配色方案我们内置了几套:

  • • 经典色:常用的蓝/绿/红/黄配色
  • • GB标准色:按国标推荐的系统颜色
  • • 莫兰迪色:低饱和度,长时间看不累

第四步:批量创建,统一命名

最后一步就是批量创建了。所有操作包在一个 Transaction 里,要么全成功,要么全回滚,不会创建到一半失败,留下一堆半成品。

命名规则统一为 [系统类型]_[系统名称],比如 风管_送风、管道_给水,方便查找和管理。


三、功能技术点总结

这个功能看起来简单,背后还是有不少技术细节的。挑几个重点说:

1. MEPSystem 的获取与分类

Revit API 中获取 MEP 系统的方式:

  • • 管道系统:FilteredElementCollector + PipingSystem 类
  • • 风管系统:FilteredElementCollector + DuctSystem 类

注意区分 系统类型(System Type) 和 系统实例(System Instance):

  • • 系统类型是项目设置里定义的,对应 MEPSystemType
  • • 系统实例是项目中实际存在的管路网络,对应 MEPSystem

我们的过滤器是按系统类型来建的,这样同一个类型下的所有管路都会被统一过滤。

2. 多类别过滤器的创建

一个过滤器要同时过滤管道、管件、附件等多个类别,怎么实现?

关键在于 ParameterFilterElement.Create() 的 categories 参数——它可以传入多个类别ID。

但要注意:不是所有参数在所有类别上都可用。比如 System Type 参数,管道和管件上都有,但某些族实例上可能没有,这时候过滤器规则就会失效。

我们的做法是:先验证每个类别是否支持指定的过滤参数,不支持的就排除,并在UI上提示用户。

3. 系统颜色的智能分配

怎么给几十个系统自动分配颜色,还要区分度好、好看?

我们的算法思路:

  1. 1. 先在 HSL 色彩空间按色相均匀分配,保证颜色区分度
  2. 2. 调整饱和度和亮度,保证在屏幕上和打印出来都清晰可见
  3. 3. 对常见系统(如送风、给水)使用行业默认色,其他系统自动分配
  4. 4. 提供手动调整入口,用户可以改

4. 性能优化:批量创建的效率

一次性创建几十个过滤器,如果每个都单独开事务,速度会很慢。

优化方法:

  • • 所有创建操作放在同一个 Transaction 里
  • • 先用 Transaction.Start() 开启,全部完成后再 Commit()
  • • 中间过程不刷新UI,完成后统一刷新
  • • 系统数量特别多时,显示进度条,避免界面假死

四、和大家聊两句

几乎每个项目启动时,第一件事就是跑一遍这个功能——几分钟的活变成几秒钟,省下来的时间干什么不好?

但我也知道,很多朋友会有顾虑:

  • • "自动生成的过滤器命名规则和我们公司不一样怎么办?"——支持自定义命名规则,前缀后缀都能改。
  • • "我们公司有自己的标准配色,能导入吗?"——当然可以,配色方案支持导入导出,一个团队统一用一套。
  • • "我项目里系统命名不规范,能识别吗?"——只要System Type对得上就能识别,命名不规范的反而能借这个机会统一一下。

想问问大家:


本文版权归腿腿教学网及原创作者所有,未经授权,谢绝转载。

未标题-1.jpg

上一篇:【Revit过滤器系列01】Revit MEP过滤器系统全解析:一键管控你的机电模型视图

下一篇:没有了

60acb4e0ef112.png
客户端下载 Windows 10 / 11 64 位测试版