乐于分享
好东西不私藏

用AI写Revit插件?我先吐为快

用AI写Revit插件?我先吐为快

AI是加速器不是替代者

用AI写Revit插件?我先吐为快


最近AI写代码被吹上天,好像只要会说话,人人都能当程序员。

我实打实用AI写了几周Revit插件,今天来泼盆冷水。

结论先说:AI能帮你写Revit插件,但过程绝不像营销号说的那么美好。

以下全是亲身踩坑实录,没有一处是编的。


一、AI的第一个幻觉:它知道Revit API

你问AI:「帮我写一个Revit 2020的IExternalCommand,获取所有墙的面积。」

它给你一段代码,看起来漂漂亮亮,编译——

错误 CS0117: 'UnitTypeId'未包含'SquareMeters'的定义

哦,原来它给的是Revit 2021+的写法。

你再问:「这是Revit 2020,请用2020的写法。」

它改了,重新给你一段。编译通过,跑起来——

Autodesk.Revit.Exceptions.ArgumentException: Invalid BuiltInParameter

原来RBS_PIPE_BOTTOM_ELEVATION这个参数名,是它自己发明的。Revit API里根本没有这个参数。

这就是用AI写Revit插件的第一大幻觉:它看起来很懂,实际上经常是在一本正经地胡说八道。


二、AI的第二个幻觉:它能理解你的项目

你有一个现成的Revit插件项目,里面有自己的基类、自己的工具方法、自己的命名规范。

你让AI「在我现有的项目里加一个功能」。

它给你一段代码,用的是它自己想象中的项目结构——类名不对、命名空间不对、调用的工具方法不存在。

你要做的不是「直接使用」,而是逐行对照你的项目,把AI生成的代码改到能编译。

改完之后你发现:这段代码的本质逻辑,其实你自己写只需要20分钟。让AI写,再加审查+修改,总共花了一个小时。

这就是所谓的「效率提升」?


三、AI的第三个幻觉:它能处理版本兼容

Revit 2019、2020、2021、2022、2023、2024——每个版本的API都有差异。

你明确告诉AI「用Revit 2020」,它答应得好好的。

结果代码里,UnitUtils.ConvertFromInternalUnits用的是2021的UnitTypeIdBuiltInParameter的枚举值用的是2022新增的。

它不是故意的,它的训练数据里这些版本是混在一起的,它自己分不清。

你要做的,是每一个和单位、参数、API签名有关的地方,都要人工核对一遍。

那我还不如直接查官方文档。


四、最离谱的一次:族编辑器API

我让AI「用C#代码在族文档里创建一个参数」。

它给了三段不同的代码,每一段用的API都不一样:

  • 第一段用FamilyManager.AddParameter(这个方法在族文档里是有的,但参数类型写错了)
  • 第二段用doc.LoadFamily(这个方法在族文档里不存在,AI显然不知道)
  • 第三段直接用了一个不存在的方法FamilyDocument.AddParameter(完全是我编的,AI也编了一个)

三段代码,全错。

我当时花了半小时跟AI来回对话,试图让它「修正」这段代码。

最后我意识到:AI没见过足够的族编辑器API示例,它根本不知道正确的写法是什么。

我关掉对话框,去查官方API文档,10分钟解决了问题。


五、那AI到底有什么用?

写到这里,你可能会觉得我在彻底否定AI。

不是的。

AI有三个地方确实有用,但和我们想象的「AI写代码」不太一样:

1. 写纯C#逻辑很可靠

查表、字符串处理、集合操作、Excel导出——这些跟Revit API无关的纯C#代码,AI写得非常好,几乎不用改。

「AI写Revit插件」的正确打开方式,其实是让AI写其中跟Revit无关的部分,Revit相关的部分自己写。

2. 解释报错信息很有用

把Visual Studio的报错信息完整粘给AI,它基本都能解释清楚是什么意思、怎么修。

这个用途,比让它直接写代码价值高得多。

3. 帮你查思路,不等同于给你可用代码

有时候你不知道某个功能应该用哪个Revit API,让AI「列出可能的实现思路」,它给的参考方向通常是有价值的。

但拿到思路之后,具体代码还是要自己写,或者自己核对


六、给营销号的一句话

最近看到不少文章:「AI让每个人都能写Revit插件」「不懂编程也能开发BIM工具」。

别信。

AI降低了写代码的门槛,但没有降到「不需要懂编程」的程度。

你还是需要:

  • 能看懂AI生成的代码哪里有问题
  • 知道Revit API的基本结构
  • 会用Visual Studio调试
  • 能判断AI给你的参数是不是编的

如果这些你都不会,AI帮不了你。它只会帮你更快地生成一堆跑不起来的代码。


七、我现在的实际工作流

踩了这么多坑之后,我现在的做法是:

任务
谁来做
原因
需求分析和拆解
AI拆的需求经常漏边界条件
纯C#逻辑(查表、Excel导出)
AI写,我审查
AI这部分很可靠
Revit API核心代码
我写,AI提供参考思路
AI写的要逐行审查,不如自己写快
调试和报错修复
AI解释报错,我修改
AI解释报错很准确
单元测试
AI写的测试经常覆盖不到边界情况

AI是我的助手,不是我的替代品。

它帮我处理重复性劳动,但核心判断始终在我这里。


写在最后

AI写Revit插件——

能做到,但有门槛。

能提速,但要会审查。

能帮你入门,但不能让你跳过学习。

那些告诉你「AI让每个人都能写代码」的人,要么没真正用过,要么在卖课。

真正用过的人会告诉你:

AI是加速器,不是替代者。前提是你本身就得会开车。


优易科技 专注BIM软件研发与数字化建造解决方案

优易BIM助手,懂技术,更懂落地。

欢迎转发