
RevitBIM자동화개발자
왜 아직도 파일을 손으로 옮기나요? Revit·Navisworks·ACC 자동 연동의 실체
MADE IN WORKS·2025. 5. 6.·4분 읽기
Revit에서 모델을 수정하고, 그 파일을 내보내서 Navisworks에 다시 불러오고, 간섭 체크 결과를 캡처해서 ACC에 올리고, 담당자에게 메일로 알리고 — 이 과정을 매주 반복하고 있다면, 이미 "자동화할 수 있는 일"에 사람의 시간을 쓰고 있는 것이다.
"그냥 각자 파일을 내보내고 받으면 되는 거 아닌가요?"된다. 다만 그 "내보내고 받는" 과정에 사람이 낀 순간, 실수(오래된 버전 업로드, 빼먹은 알림)와 지연이 함께 낀다. API 통합의 목적은 이 사람의 손을 거치는 구간을 코드로 대체하는 것이다.
API 3총사: 각자 무엇을 하는가
주요 BIM API
- Revit API: Revit 모델의 거의 모든 기능(요소 생성·수정·조회)을 코드로 제어
- Navisworks API: 간섭 체크(Clash Detection), 4D 공정 시뮬레이션을 코드로 실행
- ACC API (Autodesk Platform Services, 구 Forge): 클라우드에 있는 모델 데이터 관리, 포맷 변환, 웹 뷰어 연동
셋을 각각 따로 쓰면 "도구 3개"에 불과하지만, 셋을 파이프라인으로 엮으면 "사람 없이 도는 시스템"이 된다.
실제 자동화 파이프라인 (5단계)
- Revit API로 모델 변경을 감지 (문서 저장 이벤트 훅)
- 변경된 부분을 IFC로 자동 내보내기
- ACC API로 IFC를 클라우드에 업로드
- ACC Model Coordination에서 간섭 체크를 자동 실행
- 결과를 Slack/이메일로 담당자에게 자동 알림
개념을 코드로 옮기면 이런 형태가 된다 (실제 SDK 시그니처는 버전마다 다르므로, 아래는 파이프라인의 뼈대만 보여주는 개념 예시다):
# 개념 예시: Revit 저장 이벤트를 받아 ACC까지 자동으로 넘기는 파이프라인
def on_document_saved(doc):
changed_elements = get_changed_elements(doc) # Revit API
if not changed_elements:
return
ifc_path = export_to_ifc(doc, changed_elements) # Revit API
model_urn = acc_client.upload_model(ifc_path) # ACC API
clash_report = acc_client.run_clash_detection(model_urn) # ACC API
if clash_report.has_new_clashes():
notify_slack(channel="#bim-coordination", report=clash_report)
웹훅(Webhook)으로 시작하라처음부터 완벽한 파이프라인을 만들려 하지 말고, ACC의 웹훅 기능으로 "모델이 업로드되면 알림 보내기" 정도의 가장 단순한 자동화부터 시작하는 게 좋다. 작은 자동화가 안정적으로 도는 걸 확인한 뒤 단계를 하나씩 늘려가는 편이 유지보수 부담이 훨씬 적다.
API 버전업의 함정Revit API와 ACC API 모두 매년 버전이 바뀌고, 일부 메서드는 사전 공지 없이 폐기(deprecated)되기도 한다. 자동화 파이프라인을 구축했다면 Revit/Autodesk 플랫폼 업데이트마다 회귀 테스트를 돌리는 루틴을 반드시 같이 만들어야 한다. 안 그러면 어느 날 갑자기 파이프라인이 조용히 멈춰있는 걸 발견하게 된다.
각 API, 이럴 때 쓴다
| API | 잘 맞는 작업 | 안 맞는 작업 |
|---|---|---|
| Revit API | 요소 생성/수정, 패밀리 자동 배치, 시트 자동 생성 | 클라우드 협업, 대용량 데이터 조회 |
| Navisworks API | 간섭 체크, 4D 시뮬레이션 자동화 | 모델 자체의 형상 수정 |
| ACC API | 클라우드 저장·변환·웹 뷰어 연동, 알림 트리거 | 정밀한 지오메트리 편집 |
흔히 하는 실수프로세스가 표준화되기도 전에 자동화부터 만드는 것. "이 담당자는 이 단계에서 이 파일을 이렇게 부른다"는 규칙이 사람마다 다른 상태에서 자동화를 만들면, 자동화 코드 안에 예외 처리만 산더미처럼 쌓인다. 자동화는 표준화된 프로세스를 빠르게 만들어줄 뿐, 표준화 자체를 대신해주지 않는다.
마무리
BIM API 통합은 "각 도구를 개별적으로 쓰는 것"에서 "모든 도구가 연결되어 자동으로 동작하는 시스템"으로 넘어가는 일이다. 초기 개발 비용은 들지만, 표준화된 프로세스 위에 얹었을 때 그 비용은 프로젝트가 반복될수록 기하급수적으로 회수된다.