这是一个可落地的智能 Revit 建模插件骨架。模型只生成受控方案,Revit 插件负责校验并创建真实构件。
- 智能建模方案协议:楼层、轴网、墙、门、窗、房间。
- Core 校验层:单位、重复 ID、墙长度/高度、门窗是否落在宿主墙上。
- 兼容对话接口的生成器:可通过插件界面配置接口地址、密钥、模型名称和温度。
- 支持查询模型服务提供的模型名称。
- Revit 插件:功能区按钮、从中文描述生成模型、从模型方案文件导入建模。
- 示例模型方案和命令行校验工具。
src/AiRevitModeling.Core 模型方案协议、模型提示词、校验器
src/AiRevitModeling.Cli 本地生成/校验工具,不依赖 Revit
src/AiRevitModeling.RevitAddin Revit 2020 插件,仍可通过 RevitYear 参数编译其他版本
samples 示例描述和模型方案
tools/install-addin.ps1 写入 Revit .addin manifest
tools/sign-addin.ps1 生成签名发布包,默认输出 signed\Revit2020\net47
tools/verify-core.ps1 构建 Core/CLI、运行测试并校验样例
tools/clean-workspace.ps1 清理本机构建和发布产物
global.json 锁定 .NET SDK 版本
$env:DOTNET_CLI_HOME = "$pwd\.dotnet_home"
dotnet run --project .\src\AiRevitModeling.Cli -- validate .\samples\simple-room.json成功时会输出:
通过:模型方案有效。
Core 测试项目不依赖 Revit 和额外 NuGet 包:
dotnet run --project .\src\AiRevitModeling.Core.Tests\AiRevitModeling.Core.Tests.csproj推荐在提交前运行完整的非 Revit 验证:
.\tools\verify-core.ps1GitHub Actions 会在 main 分支 push 和 PR 时运行同一组 Core/CLI 构建和测试。Revit 插件项目依赖本机 Revit API,不放进云端 CI。
启动 Revit 后打开 智能建模 选项卡,点击 模型设置:
基础地址:只填基础地址即可,例如https://yxfwjmvmghoq.sealosgzg.site/v1。接口类型:大多数国产兼容服务选择“通用对话接口”;需要官方响应接口时选择“官方响应接口”;克劳德服务选择“克劳德接口”。接口密钥:模型服务密钥。模型名称:用于生成模型方案的模型名。查询模型:从基础地址 + /models读取支持的模型名称。
配置文件保存到:
%APPDATA%\AiRevitModeling\model-settings.json
也可以用环境变量设置模型服务:
$env:AI_REVIT_BASE_URL = "https://api.openai.com/v1"
$env:AI_REVIT_PROVIDER = "openai-chat"
$env:AI_REVIT_MODEL = "<模型名称>"
$env:AI_REVIT_API_KEY = "<接口密钥>"生成并校验:
$env:DOTNET_CLI_HOME = "$pwd\.dotnet_home"
dotnet run --project .\src\AiRevitModeling.Cli -- generate .\samples\simple-room-prompt.txt .\samples\generated-room.json本项目默认面向 Revit 2020。脚本不传 RevitYear 时会使用:
RevitYear=2020
TargetFramework=net47
RevitInstallDir=C:\Program Files\Autodesk\Revit 2020
签名发布包=signed\Revit2020\net47
安装清单=%APPDATA%\Autodesk\Revit\Addins\2020\AiRevitModeling.addin
必须使用真实 Revit 2020 主程序安装目录中的 RevitAPI.dll 和 RevitAPIUI.dll 编译插件。不要使用 3ds Max、FormIt Converter 或其他 Autodesk 组件目录中的同名 DLL。
插件仍支持通过 RevitYear 编译成不同目标框架:
| Revit 版本 | 插件目标框架 | 单位 API |
|---|---|---|
| 2020 | net47 |
DisplayUnitType |
| 2021-2024 | net48 |
UnitTypeId |
| 2025+ | net8.0-windows |
UnitTypeId |
安装 Revit 2020 后执行:
$env:DOTNET_CLI_HOME = "$pwd\.dotnet_home"
.\tools\build-revit-addin.ps1 -RevitInstallDir "C:\Program Files\Autodesk\Revit 2020"也可以直接使用 dotnet build:
dotnet build .\src\AiRevitModeling.RevitAddin\AiRevitModeling.RevitAddin.csproj -c Release -p:RevitInstallDir="C:\Program Files\Autodesk\Revit 2020"如果路径不同,把 RevitInstallDir 改成你的实际 Revit 2020 主程序目录。编译 Revit 2020 需要 .NET Framework 4.7 targeting pack。安装 Visual Studio Build Tools 时勾选对应 .NET Framework targeting pack 即可。
本地验证 Revit 2020 环境:
Test-Path "C:\Program Files\Autodesk\Revit 2020\RevitAPI.dll"
Test-Path "C:\Program Files\Autodesk\Revit 2020\RevitAPIUI.dll"
.\tools\build-revit-addin.ps1 -Configuration Release -RevitInstallDir "C:\Program Files\Autodesk\Revit 2020"两条 Test-Path 都必须输出 True 后,插件完整编译才有意义。
.\tools\build-revit-addin.ps1 -Configuration Release -RevitInstallDir "C:\Program Files\Autodesk\Revit 2020"
.\tools\sign-addin.ps1 -Configuration Release
.\tools\install-addin.ps1默认签名产物位于:
signed\Revit2020\net47
默认安装清单写入:
%APPDATA%\Autodesk\Revit\Addins\2020\AiRevitModeling.addin
启动 Revit 后会看到 智能建模 选项卡:
描述建模:输入中文描述,调用模型生成方案,校验后建模。文件建模:选择已有模型方案文件,校验后建模。模型设置:配置模型服务并查询支持的模型名称。
描述建模 生成的原始模型方案会写到:
%TEMP%\AiRevitModeling\last-plan.json
如果只想临时安装本机 Debug 构建产物,可以使用:
.\tools\install-addin.ps1 -Source Build -Configuration Debug清理 src/**/bin、src/**/obj 和 artifacts:
.\tools\clean-workspace.ps1如需同时清理签名发布包和本地 .NET 缓存:
.\tools\clean-workspace.ps1 -IncludeSigned -IncludeDotnetHome这是第一期最小可用版本,适合做标准层、简单房间、厂房盒子、机房外壳等受控场景。它不会直接做施工级出图,也不会自动处理复杂楼梯、屋面、幕墙、结构配筋、MEP 综合。生产使用前必须做人工复核和企业族库适配。