Retour à l'accueil

Renga API et Agents IA pour BIM

L'article décrit l'intégration des agents IA avec Renga API via COM pour l'automatisation des tâches BIM. Il couvre la comparaison avec Revit, la bibliothèque Python py_renga, le pipeline d'agents et la génération de familles STDL. Des exemples de code et les principaux avantages sont fournis.

Agents IA Maîtrisent Renga API : COM et Python
Advertisement 728x90

Intégration d'agents IA avec l'API Renga pour l'automatisation des processus BIM

L'API Renga utilise une architecture COM, permettant aux agents IA de contrôler l'application de manière externe sans compilation de plugins. Contrairement à l'API Revit, qui charge du code dans un AppDomain, Renga prend en charge les appels externes via le ProgID "Renga.Application.1". Cela simplifie l'intégration avec des scripts Python et des agents, en fournissant un accès aux modèles, objets et géométries.

La bibliothèque py_renga fournit des modules de base pour l'interaction COM et des compétences pour les agents. Sa structure inclut une documentation locale issue de RengaCOMAPI.tlb, la réflexion d'objets et des fonctions prêtes à l'emploi pour ouvrir des projets et créer des éléments.

Comparaison entre l'API Renga et l'API Revit

| Aspect | API Renga | API Revit |

Google AdInline article slot

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

| Technologie de base | COM (interface externe) | .NET (AppDomain) |

| Déploiement | DLL ou scripts Python | DLL uniquement |

Google AdInline article slot

| Langages | C++, C#, Python | C#, Python (via wrappers) |

L'approche COM de Renga permet de lancer l'application et de la gérer comme un processus externe. Python est nativement pris en charge via la bibliothèque de types, sans outils supplémentaires. Le SDK v2.46 inclut des en-têtes C++, des assemblages .NET, des exemples en trois langages et un fichier tlb pour l'interopérabilité.

Pour les agents IA, les scénarios clés impliquent l'automatisation externe via ROT et la réflexion d'interface. L'agent analyse les dumps d'objets, les fait correspondre avec la documentation et génère des scripts.

Google AdInline article slot

Connexion à Renga via Python

Code minimal pour lancer et travailler avec un modèle :

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))

Ce script crée un projet, extrait une collection d'objets et leurs propriétés. Pour les agents, dump_object(com_object: Any) -> Dict[str, Any] est implémenté, renvoyant des interfaces, propriétés, méthodes avec types et valeurs.

Pipeline de flux de travail de l'agent IA

L'agent suit un cycle :

  • Récupère un catalogue de compétences via get_skills_catalog().
  • Applique une compétence prête à l'emploi ou effectue un dump d'objet.
  • Analyse le dump, recherchant des interfaces dans RengaAPI_Docs.
  • Génère et teste un script.
  • Corrige les erreurs de manière itérative jusqu'au succès.

Les compétences implémentées incluent :

  • Connexion/déconnexion de l'application ;
  • Ouverture/sauvegarde de projets ;
  • Lecture/écriture de paramètres d'objets ;
  • Création/suppression d'éléments ;
  • Dump de géométrie et réflexion.

Exemples : l'agent génère des murs à partir de texte, calcule des volumes/surfaces et crée des objets paramétriques.

RengaSTDL : Génération de familles basée sur du code

RengaSTDL est un SDK utilisant Lua + JSON pour des modèles paramétriques (.rst). L'agent génère un script Lua avec géométrie, une spécification JSON et le compile via RstBuilder.exe.

Processus :

  • Prompt avec les exigences (dimensions, paramètres).
  • L'IA écrit le code Lua et JSON.
  • Compilation en .rst.
  • Importation dans Renga.

Exemple : une chaise avec hauteur/largeur paramétrables, générée à partir d'une description. Lua permet une géométrie calculée sans éditeur graphique, abaissant la barrière pour les prototypes.

La documentation et les exemples dans RengaSTDL_Docs/ sont intégrés dans la bibliothèque pour la réflexion.

Points clés à retenir

  • Les interfaces COM permettent un contrôle externe sans compilation, idéal pour les agents IA.
  • Les compétences Python avec dumping et réflexion accélèrent l'apprentissage de l'API.
  • STDL avec Lua permet de générer des familles à partir d'exigences sans codage manuel.
  • Pipeline de l'agent : analyse → génération → test → itération réduit le temps de développement de plugins.
  • Dépôt open-source py_renga avec AGENTS.md pour un démarrage rapide.

— Editorial Team

Advertisement 728x90

Lire ensuite