夜雨聆风学习资料网

ARTICLE · 1350963

AI写Revit插件:跑通了,数全错3.28倍

AI写Revit插件:跑通了,数全错3.28倍

AI写Revit插件:跑通了,数全错3.28倍

上周做机电的朋友发我一段脚本,说AI写的,在Revit里跑得挺顺,可算出来的风管总长比手工统计多了一大截。我问他单位换算做了没,他愣了一下,说AI没提这茬。

类似的事我见过不止一次。**AI写Revit插件这件事,2026年下半年已经不是"能不能写出来"的问题,是"写出来的东西敢不敢用"的问题。**于是我把这个问题拆成两个需求,搭了个测试环境,自己跑一遍。

测试怎么做的

真Revit我没法在这台机器上装,所以我写了一个模拟环境,把Revit API里最常用的那套对象复刻出来:文档、元素收集器、参数、事务,长度单位按Revit的规矩走内部英尺。

数据集是造的,但脏数据的类型参照真实项目:10根风管,分布在送风、回风、排风、新风四个系统,其中1根没连系统、1根带坡度、2根已接管件;8台设备,覆盖缺编码、空字符串编码、重复编码、已接管线、参数只读五种情况。

两个需求,都是BIM日常里最常见的活:按系统统计风管总长,按"楼层-专业-序号"批量给设备编码。每个需求让AI直出一版,我逐行核对,再逐项修。

一根没连系统的风管,就让脚本挂了

AI直出的第一版,逻辑写得挺漂亮:取所有风管、读系统名、累加长度、按系统汇总。看着没问题。

跑起来第一行就报错。

AttributeError: 'NoneType' object has no attribute 'Name'

挂在第4根风管上。那根风管没连系统,duct.MEPSystem 返回 None,脚本直接去取 .Name,崩了。

问题在于,"没连系统的风管"在真实模型里不是异常,是常态。施工图阶段的模型,管道画完了还没接风口的情况随处可见,机电模型交圈前更是满地都是。AI没见过你的模型,它默认每个对象都是完整的。

把 None 判断补上,脚本跑通了。这时候才轮到第二个坑。

补完那一行,我以为就完事了。结果跑出来排风系统246.06,我心里第一反应是数据集造错了,回头把10根风管的英尺数重新加了一遍,才对上75米。差的不是数据,是那一步乘法。

系统
人工核算(米)
AI脚本输出
偏差
排风系统
75.00
246.06
3.28倍
回风系统
40.00
131.23
3.28倍
送风系统
30.00
98.43
3.28倍
新风系统
25.00
82.02
3.28倍
未分类
20.00
65.62
3.28倍

全部虚高3.28倍。3.28是1除以0.3048,Revit内部长度单位是英尺,AsDouble() 返回的也是英尺,想拿米就得乘0.3048。AI写了 AsDouble(),没写那个乘法。

这个错误最阴的地方在于它不报错。输出整整齐齐,还带两位小数,看上去比手工统计更精确。要不是我先算了真值,根本发现不了。

另一个坑在事务:停在半路比报错更难查

第二个需求是批量编码。AI给的版本是按楼层和专业分组,循环累加序号,写进标记参数。思路对。

跑到第7台设备的时候抛异常:Parameter is read-only。那台设备的标记参数是只读的,Set() 直接拒绝。

真正麻烦的不是这个异常,是异常发生时事务的状态。日志显示只有 start,没有 commit,也没有 rollback。在真实Revit里,这意味着一个悬空的事务:前面的修改既没落盘也没撤销,用户看到报错,却不知道模型到底改成了什么样。

它还干了另外两件事。一台已经有编码 AHU-1F-001 的设备被覆盖成了 1F-暖通-001,一台已经接了管线的水泵也被重新编了码。这两件事放到任何项目上,都是要被总工追着问的。

修正版的逻辑是:先查参数是否只读,再查是否已有编码,再查是否已接管线,三个条件任何一个命中就跳过,整个循环包在 try/except 里,出错自动 Rollback。

结果:8台设备里新增编码3台,跳过已编码3台、已接管1台、只读1台,事务正常提交。这才是能进项目的版本。

但修正版还留了个尾巴。新编出来的码是 1F-暖通-001,项目里原有的码是 AHU-1F-001。同一层楼、同一个专业,两种码风并行。AI严格按我给它的规则做了,它不知道这个项目三年前就有一套自己的编码体系。

结论:AI不缺编程能力,缺的是项目常识

两版对比下来,结论很清楚:AI能写出语法正确、逻辑成立的代码,但写不出能直接上项目的代码。

卡点集中在四个地方。最容易被忘的是单位换算,Revit内部用英尺,AI经常直接拿 AsDouble() 的返回值当米用。事务完整性属于另一类问题,AI习惯只写 Start 和 Commit,异常分支压根没有。至于边界情况,None、只读、已连接、锁定这四类,它默认都不存在。项目既有约定最麻烦,它根本无从知道。

说人话就是,AI把你脑子里的需求翻成代码,翻得挺准,但它不知道你工地上那些没写进需求的规矩。

有件事得说清楚:这套测试是在模拟环境里跑的,不是真Revit。语法、API调用、事务逻辑、单位换算这些能验证,但Revit里更隐蔽的坑,比如族参数类型不一致、链接模型里的元素怎么取、不同Dynamo版本的差异,这个环境测不出来。所以我的结论只覆盖到代码逻辑这一层,插件部署那一层还得另说。

前三个问题,你懂行就能查出来,改起来也就几行代码。第四个问题查不出来,得靠人告诉它。

一个值得注意的时间点

2026年11月这个月,AEC软件的AI接口在快速铺开。Nemetschek 在11月2日一口气发了三款:Archicad Max、Allplan Max 2027、Bluebeam Max,全部基于统一的AI平台,并且支持 MCP 协议,Bluebeam Max 可以直接连 Claude 和 Copilot CLI,用自然语言生成标记、查项目信息(来源:ENGtechnica[1])。Allplan Max 2027 的早期测试用户反馈,部分任务完成速度提升最高36%(来源:Construction World[2])。

Autodesk 那边,AU 2026 上放出了 Revit MCP 的写入权限技术预览,Revit 2027.4 也在11月10日更新到 Dynamo 4.2.2(来源:revit.news[3])。社区里已经有 Autom8Labs 这类团队放出22个免费的 MCP skills,专门教AI代理在Revit里逐步完成任务(来源:revit.news[4])。

同一个月,武汉经开区的AI+建造对接会上,中铁大桥科技说他们的桥梁静力分析从10小时压到30分钟,瞻海科技的AI标书把制作周期从7天压到半天(来源:湖北日报[5])。数字一个比一个漂亮,但台上没人讲这些工具有多少前置条件。

这意味着什么?以前AI帮你写脚本,你还有一道人工审核的关口。现在AI可以直接读模型、改模型,那道关口正在被拆掉。

写脚本这一层,漏了单位换算最多是数字错3.28倍,你手工核一遍还能发现。直接改模型那一层,一个 Set() 写错参数,可能就是几百个构件的属性被批量污染,而且没有Ctrl+Z之外的退路。

我不觉得这是要抵制的事。但工具越强,验收的活儿越得自己干。

五条体检清单,可以直接抄

踩完这两个坑,我整理了一张表,我的建议是每次让AI写完脚本都按这个过一遍再进项目:

检查项
具体查什么
不查的后果
单位
所有长度类 AsDouble() 后有没有乘 0.3048
数值虚高3.28倍,且不报错
事务
有没有 try/except,异常时是否 Rollback
悬空事务,模型状态不明
空值
MEPSystem
、LookupParameter、get_Parameter 是否判空
一个脏数据就让整个脚本崩
覆盖
写入前是否检查已有值
把别人做好的成果批量冲掉
规则
编码/命名是否对齐项目既有体系
同一项目出现两套码风

还有一条不算检查项,但我觉得更重要:**第一次跑,一定在模型副本上跑,先做只读版。**统计、检查、出报告这类不改模型的功能先跑通,确认结果对得上手工核算,再加写入逻辑。这个顺序反了,出事就是批量出事。

说实话,这套方法我也是踩了坑才总结出来的。要不是朋友那句"AI没提这茬",我可能也会觉得跑通就算完事。

金句卡

AI写的代码不报错,不代表算得对。 3.28倍这种错,只有手工核一遍才发现。 让AI出第一版容易,出体检报告还得你自己来。


你们项目上用AI写过插件吗?踩过哪个坑,评论区说说,我整理成下一期的避坑清单。

写于重庆,一个被英尺和毫米来回坑过的人。

参考资料

  1. 不懂代码也能做Revit二次开发?BIM工程师的AI实操指南[6]
  2. revit.news:Revit 2027.4 更新与 AI/MCP 动态[7]
  3. ENGtechnica:Nemetschek 推出 AEC 领域 AI 软件[8]
  4. Construction World:Nemetschek 发布 Max 系列 AI 解决方案[9]
  5. ArchiLabs:10个任务对比Revit AI工具的方法论[10]
  6. 湖北日报:武汉经开区AI+建造供需对接会[11]

引用链接

[1]来源:ENGtechnica: https://engtechnica.com/nemetschek-introduces-ai-software-for-aec-domain

[2]来源:Construction World: https://www.constructionworld.in/policy-updates-and-economic-news/nemetschek-launches-ai-powered-max-solutions-for-aec-industry/99818

[3]来源:revit.news: https://www.revit.news/

[4]来源:revit.news: https://www.revit.news/

[5]来源:湖北日报: https://news.hubeidaily.net/pc/c_6148928.html

[6]不懂代码也能做Revit二次开发?BIM工程师的AI实操指南: http://mp.weixin.qq.com/s?__biz=MzIwMDM5MDIzOA==&mid=2454945859&idx=3&sn=d6935e3c377c78294fdff34d670353fb&chksm=80a29a38377deabf542ebe82d2b68a06807e2545c128a8e9bb4b382e4547f1150e575280342e#rd

[7]revit.news:Revit 2027.4 更新与 AI/MCP 动态: https://www.revit.news/

[8]ENGtechnica:Nemetschek 推出 AEC 领域 AI 软件: https://engtechnica.com/nemetschek-introduces-ai-software-for-aec-domain

[9]Construction World:Nemetschek 发布 Max 系列 AI 解决方案: https://www.constructionworld.in/policy-updates-and-economic-news/nemetschek-launches-ai-powered-max-solutions-for-aec-industry/99818

[10]ArchiLabs:10个任务对比Revit AI工具的方法论: https://archilabs.ai/posts/best-ai-revit-ten-task-comparison

[11]湖北日报:武汉经开区AI+建造供需对接会: https://news.hubeidaily.net/pc/c_6148928.html

回首页,搜索你想要的文档

在首页搜索框输入关键词,快速定位资料

文库首页搜索指引 立即搜索

相关学习资料