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 |
|--------|-----------|-----------|
| Základní technologie | COM (externí rozhraní) | .NET (AppDomain) |
| Nasazení | DLL nebo Python skripty | Pouze DLL |
| 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.
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
Zatím žádné komentáře.