Volver al inicio

Renga API y Agentes IA para BIM

El artículo describe la integración de agentes IA con Renga API mediante COM para la automatización de tareas BIM. Cubre comparación con Revit, biblioteca Python py_renga, pipeline de agentes y generación de familias STDL. Se proporcionan ejemplos de código y ventajas clave.

Agentes IA Maestrizan Renga API: COM y Python
Advertisement 728x90

Integración de Agentes de IA con la API de Renga para Automatización de Procesos BIM

La API de Renga utiliza una arquitectura COM, lo que permite a los agentes de IA controlar la aplicación externamente sin necesidad de compilar complementos. A diferencia de la API de Revit, que carga código en un AppDomain, Renga admite llamadas externas a través del ProgID "Renga.Application.1". Esto simplifica la integración con scripts de Python y agentes, proporcionando acceso a modelos, objetos y geometría.

La biblioteca py_renga proporciona módulos principales para la interacción COM y habilidades para agentes. Su estructura incluye documentación local de RengaCOMAPI.tlb, reflexión de objetos y funciones listas para usar para abrir proyectos y crear elementos.

Comparación entre la API de Renga y la API de Revit

| Aspecto | API de Renga | API de Revit |

Google AdInline article slot

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

| Tecnología Principal | COM (interfaz externa) | .NET (AppDomain) |

| Implementación | DLL o scripts de Python | Solo DLL |

Google AdInline article slot

| Lenguajes | C++, C#, Python | C#, Python (a través de envoltorios) |

El enfoque COM de Renga permite lanzar la aplicación y gestionarla como un proceso externo. Python es compatible de forma nativa a través de la biblioteca de tipos, sin herramientas adicionales. El SDK v2.46 incluye encabezados de C++, ensamblados .NET, ejemplos en tres lenguajes y un archivo tlb para interoperabilidad.

Para agentes de IA, los escenarios clave implican automatización externa a través de ROT y reflexión de interfaz. El agente analiza volcados de objetos, los compara con la documentación y genera scripts.

Google AdInline article slot

Conexión a Renga mediante Python

Código mínimo para lanzar y trabajar con un modelo:

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 falló con código {result}")

project = app.Project
model = project.Model
objects = model.GetObjects()
print(f"Número de objetos: {objects.Count}")

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

Este script crea un proyecto, extrae una colección de objetos y sus propiedades. Para agentes, se implementa dump_object(com_object: Any) -> Dict[str, Any], que devuelve interfaces, propiedades, métodos con tipos y valores.

Flujo de Trabajo del Agente de IA

El agente sigue un ciclo:

  • Recupera un catálogo de habilidades mediante get_skills_catalog().
  • Aplica una habilidad predefinida o vuelca un objeto.
  • Analiza el volcado, buscando interfaces en RengaAPI_Docs.
  • Genera y prueba un script.
  • Corrige errores iterativamente hasta el éxito.

Las habilidades implementadas incluyen:

  • Conectar/desconectar la aplicación;
  • Abrir/guardar proyectos;
  • Leer/escribir parámetros de objetos;
  • Crear/eliminar elementos;
  • Volcar geometría y reflexión.

Ejemplos: el agente genera muros a partir de texto, calcula volúmenes/áreas y crea objetos paramétricos.

RengaSTDL: Generación de Familias Basada en Código

RengaSTDL es un SDK que utiliza Lua + JSON para plantillas paramétricas (.rst). El agente genera un script Lua con geometría, una especificación JSON y lo compila a través de RstBuilder.exe.

Proceso:

  • Solicitud con requisitos (dimensiones, parámetros).
  • La IA escribe código Lua y JSON.
  • Compilación en .rst.
  • Importación en Renga.

Ejemplo: una silla con altura/ancho parametrizados, generada a partir de una descripción. Lua permite geometría calculada sin un editor gráfico, reduciendo la barrera para prototipos.

La documentación y ejemplos en RengaSTDL_Docs/ están integrados en la biblioteca para reflexión.

Conclusiones Clave

  • Las interfaces COM permiten control externo sin compilación, ideal para agentes de IA.
  • Las habilidades de Python con volcado y reflexión aceleran el aprendizaje de la API.
  • STDL con Lua permite generar familias a partir de requisitos sin codificación manual.
  • Flujo del agente: análisis → generación → prueba → iteración reduce el tiempo de desarrollo de complementos.
  • Repositorio de código abierto py_renga con AGENTS.md para inicio rápido.

— Editorial Team

Advertisement 728x90

Leer después