Skip to content

suimi8/AiRevitModeling

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

智能 Revit 建模

这是一个可落地的智能 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.ps1

GitHub 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 插件

本项目默认面向 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.dllRevitAPIUI.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/**/binsrc/**/objartifacts

.\tools\clean-workspace.ps1

如需同时清理签名发布包和本地 .NET 缓存:

.\tools\clean-workspace.ps1 -IncludeSigned -IncludeDotnetHome

重要限制

这是第一期最小可用版本,适合做标准层、简单房间、厂房盒子、机房外壳等受控场景。它不会直接做施工级出图,也不会自动处理复杂楼梯、屋面、幕墙、结构配筋、MEP 综合。生产使用前必须做人工复核和企业族库适配。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors