
每天下班前,你是不是还在做这些事:几十张视图一个个改名、几百个门窗逐个编号、Excel 里的门窗表一个个往模型里填参数……这些”体力活”不难,但极其耗时,还容易出错。其实 Revit 早就自带了一个”自动干活”神器——Dynamo 可视化编程。它不用写一行代码,拖拖节点、连连线,就能让 Revit 替你批量干活。今天这篇入门教程,就带你从零认识 Dynamo,并给出 5 个即学即用的实用脚本案例。
一、Dynamo 是什么?Revit 自带的”自动化外挂”
Dynamo 是一款可视化编程工具,随 Revit 一起安装(以 Revit 2024 为例,装好 Revit 就自带了,不用单独下载)。它的逻辑很简单:把一个个功能”节点”拖到画布上,再用线连起来,数据就顺着线流动,Revit 就会按你的逻辑自动执行。
举个例子:传统做法是选中 50 个视图逐个改名;Dynamo 的做法是——”获取所有视图”节点 → “读取名称”节点 → “替换文字”节点 → “写回名称”节点,连好线点一下运行,50 个视图瞬间改完。
它和插件是什么关系?插件是别人做好的成品工具,开箱即用;Dynamo 则是”自己搭积木”,想实现什么逻辑自己说了算。两者不冲突,很多高手是插件 + Dynamo 双管齐下。如果你还没装过效率插件,可以先看看这篇5款免费Revit效率插件,把基础效率先拉起来,再学 Dynamo 做更个性化的自动化。
二、安装与界面:5 分钟上手
1. 在哪找到 Dynamo?
以 Revit 2024 为例:打开 Revit,顶部切换到「管理」选项卡,找到「可视化编程」面板,点击 Dynamo 即可启动。如果你的版本较老没有自带,可以去 Dynamo 官网下载对应 Revit 版本的安装包。
2. 界面三要素
- 左侧节点库:所有可用节点按分类收纳,顶部有搜索框,直接搜中文或英文关键词就能找到节点。
- 中间画布:你的工作区,节点拖进来、用线连起来,逻辑就在这里搭建。
- 运行控制:左下角可切换”自动 / 手动”运行模式。新手建议用手动模式,搭好逻辑再点运行,避免中途误操作。
3. 你的第一个脚本:三步跑通
别一上来就想做复杂的东西,先跑通一个”Hello World”式的小脚本找找感觉:
- 从节点库拖入 Categories(构件类别)节点,下拉选择”门”;
- 拖入 All Elements of Category 节点,把上一步的输出连到它的输入——画布上立刻列出了模型里所有的门;
- 拖入 Element.SetParameterByName 节点,参数名填”注释”,值填”测试”,连好线点运行,所有门的”注释”参数瞬间被填上。
三步,你就完成了人生中第一次”让 Revit 自动干活”。后面 5 个案例,都是这个逻辑的放大版。

三、5 个即学即用的实用脚本案例
下面 5 个脚本都是项目上真实高频的”体力活”,先看总览表,再看每个的操作步骤:
| 编号 | 场景 | 节点思路 | 效果 |
|---|---|---|---|
| 1 | 批量重命名视图 | 获取视图 → 读取名称 → 字符串替换 → 写回名称 | 几十张图纸视图一键统一命名 |
| 2 | 构件自动编号 | 获取构件 → 按位置排序 → 生成序号 → 写入编号参数 | 门窗自动生成 M-001 式编号 |
| 3 | Excel 数据联动写入参数 | 读取 Excel → 匹配构件 → 批量写入参数 | 门窗表数据直接同步进模型 |
| 4 | 批量放置族 | 读取点位坐标 → 按坐标批量放置族实例 | 成百上千个构件一次放完 |
| 5 | 参数批量修改 | 筛选构件 → 批量设置参数值 | 全楼同类参数一次改完 |
案例 1:批量重命名视图
出图前统一视图命名是每个项目的标配,一个个改能改到怀疑人生。
- 用获取视图的节点拿到所有平面视图;
- Element.Name 读取当前视图名称;
- String.Replace 把旧前缀替换成新命名规则(如”一层”→”F01″);
- Element.SetName 写回,运行。
几十张视图,3 秒改完,命名零失误。
案例 2:构件自动编号
门窗编号 M-001、M-002……手工编最容易跳号、重号。
- 按类别获取所有门构件;
- 读取每个门的位置点(Element.GetLocation),用 List.SortByKey 按 X→Y 坐标排序;
- 用计数节点拼出”M-001″格式的字符串序号列表;
- Element.SetParameterByName 写入”标记”或自定义”编号”参数。
排序规则自己定,编号永远连续不重号,设计变更后重新运行一遍即可刷新。
案例 3:Excel 数据联动写入参数
门窗表、设备表通常在 Excel 里维护,手工往模型里填参数是双倍工作量。
- Data.ImportExcel 读取 Excel 文件(勾选”读取为字符串”避免格式问题);
- 按”编号”列与模型构件的编号参数做匹配,过滤出对应关系;
- Element.SetParameterByName 把尺寸、材质、厂家等列批量写入对应参数。
Excel 改一次,运行一次脚本,模型参数全同步,彻底告别”两边对不上”。
案例 4:批量放置族
停车场的地锁、走廊的灯具、幕墙的埋件……几百个相同构件一个个点,点到手抽筋。
- 从 Excel 或按规律生成点位坐标列表(Point.ByCoordinates);
- FamilyInstance.ByPoint 按点批量放置族实例;
- 需要旋转角度的,再加一步批量设置旋转参数。
族从哪里来?可以先看这篇Revit参数化族制作技巧自己动手做,或者直接去免费BIM族库下载渠道找现成的族:下载 → 载入项目 → Dynamo 批量布置,一条龙打通。
案例 5:参数批量修改
甲方一句话”把全楼防火门的耐火等级改成甲级”,手工改几百个门?
- 按类别 + 参数值筛选出所有防火门;
- Element.SetParameterByName 把”耐火等级”参数统一设为”甲级”;
- 运行前建议先在三维视图里预览选中结果,确认无误再执行写入。
同类需求还有:批量修改墙体防火等级、批量填写构件”防火分区”参数等,一个脚本模板反复套用。

四、Dynamo 学习路线:从 0 到 1 的四个阶段
- 阶段一:跑通别人的脚本(1~2 周)。先去 Dynamo 论坛、技术社群找现成脚本,学会打开、运行、改参数。目标:敢点”运行”按钮。
- 阶段二:理解节点逻辑(2~4 周)。搞懂数据类型(数字、字符串、列表)和”列表层级”这个核心概念,能照着教程复刻简单脚本。
- 阶段三:自己搭简单脚本(1~2 个月)。从”批量改名””批量编号”这类小需求开始,独立搭出能用的脚本。
- 阶段四:进阶(持续)。学 Python 节点写自定义逻辑,了解 Revit API 能调用哪些功能,甚至把自己的节点打包成共享包。
记住一个原则:带着项目中的真问题去学,每个脚本解决一个实际痛点,学得最快也最牢。
五、常见问题 FAQ
Q1:Dynamo 和写代码(C# / Python)是什么关系?
A:Dynamo 是”可视化”的编程,不用记语法,适合快速实现自动化;C# / Python 是”文本”编程,天花板更高。两者不互斥——Dynamo 里本身就有一个 Python 节点,复杂逻辑可以直接写 Python。建议路径:先玩转 Dynamo,遇到瓶颈再学 Python,一步一个脚印。
Q2:Dynamo 脚本能在其他项目里复用吗?
A:完全可以。Dynamo 脚本保存为 .dyn 文件,换个项目打开就能用。建议把常用的做成”脚本库”,按”改名 / 编号 / 导数据”分类存好;更讲究的可以用 Dynamo Player 做成一键运行的傻瓜包,发给同事也能直接用。
Q3:Dynamo 运行很慢或者报错怎么办?
A:先查三处:① 运行模式是否误设为”自动”,大数据量下改手动;② 节点输入的数据类型对不对(最常见的是把”元素”连到了要”字符串”的口);③ 列表层级是否匹配。新手 90% 的报错都出在这三处,对照排查基本都能解决。
Q4:有了 Dynamo,还需要装 Revit 插件吗?
A:需要,两者分工不同。插件是开箱即用的成品功能(如一键出图、模型检查),Dynamo 擅长的是”按你的规则批量处理数据”。日常组合是:插件解决通用需求,Dynamo 解决个性化、项目特定的自动化需求。
Q5:学 Dynamo 需要先学 Revit API 吗?
A:不需要。Dynamo 的节点已经把 API 封装好了,零基础可以直接上手。只有当你想开发自定义节点、实现节点库里没有的功能时,才需要接触 Revit API,那是阶段四的事。
总结一下:Dynamo 是 Revit 用户离”自动化”最近的一条路——不用写代码,拖拖连连就能把重复劳动交给电脑。从今天介绍的 5 个脚本里挑一个你项目上最痛的,今晚就动手跑一遍,你会发现:原来 Revit 还可以这么用。



评论0