返回首页

Renga API 和 AI 代理用于 BIM

本文描述了通过 COM 将 AI 代理与 Renga API 集成以实现 BIM 任务自动化。它涵盖了与 Revit 的比较、Python 库 py_renga、代理管道以及 STDL 族生成。提供了代码示例和关键优势。

AI 代理掌握 Renga API:COM 和 Python
Advertisement 728x90

利用Renga API集成AI智能体实现BIM流程自动化

Renga API采用COM架构,允许AI智能体无需编译插件即可从外部控制应用程序。与Revit API将代码加载到AppDomain不同,Renga通过ProgID "Renga.Application.1"支持外部调用。这简化了与Python脚本和智能体的集成,提供了对模型、对象和几何体的访问。

py_renga库提供了COM交互的核心模块和智能体技能。其结构包括来自RengaCOMAPI.tlb的本地文档、对象反射以及用于打开项目和创建元素的现成函数。

比较Renga API与Revit API

| 方面 | Renga API | Revit API |

Google AdInline article slot

|--------|-----------|-----------|

| 核心技术 | COM(外部接口) | .NET(AppDomain) |

| 部署方式 | DLL或Python脚本 | 仅DLL |

Google AdInline article slot

| 支持语言 | C++、C#、Python | C#、Python(通过包装器) |

Renga的COM方法允许启动应用程序并将其作为外部进程管理。Python通过类型库原生支持,无需额外工具。SDK v2.46包括C++头文件、.NET程序集、三种语言的示例以及用于互操作的tlb文件。

对于AI智能体,关键场景涉及通过ROT和接口反射进行外部自动化。智能体分析对象转储,与文档匹配,并生成脚本。

Google AdInline article slot

通过Python连接Renga

启动并处理模型的最小代码:

import comtypes.client

PROG_ID = "Renga.Application.1"
app = comtypes.client.CreateObject(PROG_ID)
app.Visible = True

result = app.CreateProject()
if result != 0:
    raise RuntimeError(f"CreateProject失败,错误代码 {result}")

project = app.Project
model = project.Model
objects = model.GetObjects()
print(f"对象数量: {objects.Count}")

for index in range(objects.Count):
    obj = objects.GetByIndex(index)
    print(getattr(obj, "Name", None))

此脚本创建项目,提取对象集合及其属性。对于智能体,实现了dump_object(com_object: Any) -> Dict[str, Any],返回接口、属性、方法及其类型和值。

AI智能体工作流程管道

智能体遵循以下循环:

  • 通过get_skills_catalog()检索技能目录。
  • 应用现成技能或转储对象。
  • 分析转储,在RengaAPI_Docs中搜索接口。
  • 生成并测试脚本。
  • 迭代修复错误直至成功。

已实现的技能包括:

  • 连接/断开应用程序;
  • 打开/保存项目;
  • 读取/写入对象参数;
  • 创建/删除元素;
  • 转储几何体和反射。

示例:智能体从文本生成墙体、计算体积/面积,并创建参数化对象。

RengaSTDL:基于代码的族生成

RengaSTDL是一个使用Lua + JSON进行参数化模板(.rst)的SDK。智能体生成带有几何体的Lua脚本、JSON规范,并通过RstBuilder.exe编译。

流程:

  • 输入需求(尺寸、参数)。
  • AI编写Lua代码和JSON。
  • 编译为.rst文件。
  • 导入Renga。

示例:一把高度和宽度可参数化的椅子,根据描述生成。Lua允许无需图形编辑器计算几何体,降低了原型设计的门槛。

RengaSTDL_Docs/中的文档和示例已集成到库中以供反射使用。

关键要点

  • COM接口无需编译即可实现外部控制,非常适合AI智能体。
  • 带有转储和反射功能的Python技能加速了API学习。
  • 使用Lua的STDL允许根据需求生成族,无需手动编码。
  • 智能体管道:分析 → 生成 → 测试 → 迭代,减少了插件开发时间。
  • 开源py_renga仓库,附AGENTS.md快速入门指南。

— Editorial Team

Advertisement 728x90

继续阅读