홈으로 돌아가기

BIM을 위한 Renga API 및 AI 에이전트

이 기사는 COM을 통해 Renga API와 AI 에이전트를 BIM 작업 자동화를 위해 통합하는 방법을 설명합니다. Revit 비교, Python 라이브러리 py_renga, 에이전트 파이프라인, STDL 패밀리 생성을 다룹니다. 코드 예제와 주요 장점이 제공됩니다.

AI 에이전트가 Renga API를 마스터: COM 및 Python
Advertisement 728x90

Renga API와 AI 에이전트 통합으로 BIM 프로세스 자동화하기

Renga API는 COM 아키텍처를 사용하여 AI 에이전트가 플러그인을 컴파일하지 않고도 외부에서 애플리케이션을 제어할 수 있도록 합니다. 코드를 AppDomain에 로드하는 Revit API와 달리, 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 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))

이 스크립트는 프로젝트를 생성하고, 객체 컬렉션과 그 속성을 추출합니다. 에이전트의 경우, dump_object(com_object: Any) -> Dict[str, Any]가 구현되어 인터페이스, 속성, 타입 및 값이 있는 메서드를 반환합니다.

AI 에이전트 워크플로우 파이프라인

에이전트는 다음 사이클을 따릅니다:

  • get_skills_catalog()를 통해 스킬 카탈로그를 검색합니다.
  • 준비된 스킬을 적용하거나 객체를 덤프합니다.
  • 덤프를 분석하여 RengaAPI_Docs에서 인터페이스를 검색합니다.
  • 스크립트를 생성하고 테스트합니다.
  • 성공할 때까지 반복적으로 오류를 수정합니다.

구현된 스킬에는 다음이 포함됩니다:

  • 애플리케이션 연결/해제;
  • 프로젝트 열기/저장;
  • 객체 매개변수 읽기/쓰기;
  • 요소 생성/삭제;
  • 기하학 및 리플렉션 덤프.

예시: 에이전트는 텍스트에서 벽을 생성하고, 부피/면적을 계산하며, 파라메트릭 객체를 생성합니다.

RengaSTDL: 코드 기반 패밀리 생성

RengaSTDL은 파라메트릭 템플릿(.rst)을 위한 Lua + JSON을 사용하는 SDK입니다. 에이전트는 기하학이 포함된 Lua 스크립트와 JSON 사양을 생성하고, RstBuilder.exe를 통해 컴파일합니다.

프로세스:

  • 요구사항(치수, 매개변수)으로 프롬프트합니다.
  • AI가 Lua 코드와 JSON을 작성합니다.
  • .rst로 컴파일합니다.
  • Renga로 가져옵니다.

예시: 높이/너비가 파라메트릭화된 의자로, 설명에서 생성됩니다. Lua는 그래픽 편집기 없이 계산된 기하학을 허용하여 프로토타입의 진입 장벽을 낮춥니다.

RengaSTDL_Docs/의 문서화 및 예제는 리플렉션을 위해 라이브러리에 통합됩니다.

핵심 요약

  • COM 인터페이스는 컴파일 없이 외부 제어를 가능하게 하여 AI 에이전트에 이상적입니다.
  • 덤핑과 리플렉션이 포함된 Python 스킬은 API 학습을 가속화합니다.
  • Lua를 사용한 STDL은 수동 코딩 없이 요구사항에서 패밀리를 생성할 수 있게 합니다.
  • 에이전트 파이프라인: 분석 → 생성 → 테스트 → 반복으로 플러그인 개발 시간을 단축합니다.
  • 빠른 시작을 위한 AGENTS.md가 포함된 오픈소스 py_renga 저장소.

— Editorial Team

Advertisement 728x90

다음 읽기