Zpět na domů

Renga API a AI agenti pro BIM

Článek popisuje integraci AI agentů s Renga API prostřednictvím COM pro automatizaci BIM úkolů. Zkoumá srovnání s Revit, Python knihovna py_renga, pipeline agenta a generování STDL rodin. Uvádějí se příklady kódu a klíčové výhody.

AI agenti ovládají Renga API: COM a Python
Advertisement 728x90

Integrace AI agentů s Renga API pro automatizaci BIM procesů

Renga API využívá COM architekturu, což umožňuje AI agentům ovládat aplikaci zvenčí bez kompilace pluginů. Na rozdíl od Revit API, které načítá kód do AppDomain, Renga podporuje externí volání přes ProgID "Renga.Application.1". Toto zjednodušuje integraci s Python skripty a agenty, zajišťuje přístup k modelům, objektům a geometrii.

Knihovna py_renga poskytuje core moduly pro COM interakci a skills pro agenty. Struktura zahrnuje lokální dokumentaci RengaCOMAPI.tlb, reflexi objektů a připravené funkce pro otevírání projektů, vytváření prvků.

Porovnání Renga API a Revit API

| Aspekt | Renga API | Revit API |

Google AdInline article slot

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

| Základní technologie | COM (externí rozhraní) | .NET (AppDomain) |

| Nasazení | DLL nebo Python skripty | Pouze DLL |

Google AdInline article slot

| Jazyky | C++, C#, Python | C#, Python (přes obálky) |

COM přístup Renga umožňuje spustit aplikaci, ovládat ji jako externí proces. Python je podporován standardně přes type library, bez dalších nástrojů. SDK v2.46 obsahuje hlavičky C++, .NET sestavení, příklady ve třech jazycích a tlb soubor pro interop.

Pro AI agenty jsou klíčovými scénáři externí automatizace via ROT a reflexe rozhraní. Agent analyzuje výpisy objektů, porovnává s dokumentací a generuje skripty.

Google AdInline article slot

Připojení k Renga přes Python

Minimální kód pro spuštění a práci s modelem:

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 failed with code {result}")

project = app.Project
model = project.Model
objects = model.GetObjects()
print(f"Objects count: {objects.Count}")

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

Tento skript vytvoří projekt, extrahuje kolekci objektů a jejich vlastnosti. Pro agenty je implementován dump_object(com_object: Any) -> Dict[str, Any], vracející rozhraní, vlastnosti, metody s typy a hodnotami.

Pipeline práce AI agenta

Agent následuje cyklus:

  • Získá katalog skills přes get_skills_catalog().
  • Aplikuje připravený skill nebo vypíše objekt.
  • Analyzuje výpis, hledá rozhraní v RengaAPI_Docs.
  • Generuje a testuje skript.
  • Iterativně opravuje chyby až do úspěchu.

Implementované skills:

  • Připojení/odpojení aplikace;
  • Otevírání/ukládání projektů;
  • Čtení/zápis parametrů objektů;
  • Vytváření/odstraňování prvků;
  • Výpis geometrie a reflexe.

Příklady: agent generuje zdi pro text, počítá objemy/plochy, vytváří parametrické objekty.

RengaSTDL: generování rodin kódem

RengaSTDL – SDK v Lua + JSON pro parametrické šablony (.rst). Agent generuje Lua skript s geometrií, specifikaci JSON, kompiluje přes RstBuilder.exe.

Proces:

  • Prompt s zadáním (rozměry, parametry).
  • AI napíše Lua kód a JSON.
  • Kompilace do .rst.
  • Import do Renga.

Příklad – židle s parametrizací výšky/šířky, generovaná podle popisu. Lua umožňuje vypočítanou geometrii bez grafického editoru, snižuje práh pro prototypy.

Dokumentace a příklady v RengaSTDL_Docs/ jsou integrovány do knihovny pro reflexi.

Co je důležité

  • COM rozhraní zajišťují externí kontrolu bez kompilace, ideální pro AI agenty.
  • Python skills s výpisem a reflexí urychlují učení API.
  • STDL v Lua umožňuje generovat rodiny podle zadání bez ručního kódování.
  • Pipeline agenta: analýza → generování → test → iterace snižuje čas na pluginy.
  • Otevřený repozitář py_renga s AGENTS.md pro rychlý start.

— Editorial Team

Advertisement 728x90

Číst dál