원가가 자동으로 계산되는 BIM - 5D 견적 연동의 모든 것
설계변경 회의가 끝나고 견적팀에 연락이 온다. "물량 다시 뽑아주세요, 이번 주 금요일까지요." 그런데 이게 한 번이 아니다. 설계가 바뀔 때마다 BIM에서 물량 뽑고, 그걸 엑셀 내역서에 옮겨 적고, 변경된 물량에 단가를 곱해서 원가 증감을 계산한다. 이 일련의 과정이 전부 수동으로 돌아가고 있다면 — 당신은 아직 5D BIM을 시작하지 않은 것이다.
5D BIM의 핵심5D BIM은 3D 모델의 물량 데이터에 단가 정보를 더해 비용을 실시간으로 산출하는 체계다. 설계 변경이 발생하면 물량 → 단가 → 원가까지 전 구간이 자동으로 연쇄 갱신되는 파이프라인을 구축하는 것이 목표다. 목표는 엑셀 없애기가 아니라, 엑셀에 수동으로 옮겨 적는 작업을 없애는 것이다.
왜 5D 자동화가 생각보다 어려운가
BIM에서 물량 뽑기가 되는 건 누구나 안다. Revit Schedule로 콘크리트 몇 ㎥, 철근 몇 톤 나오는지 버튼 한 번이면 나온다. 그걸 엑셀에 붙여넣고 단가 곱해서 견적서를 만드는 게 지금 대부분 조직의 현실이다. 여기서 "자동화"로 한 걸음 나아가려 할 때 부딪히는 벽이 세 가지다.
첫째, BIM 객체와 내역서 항목의 불일치다. BIM에서 "벽" 카테고리는 하나지만, 내역서에서는 거푸집·철근·콘크리트·미장·단열재로 5개 항목에 걸쳐 분할된다. BIM 객체 하나와 내역서 항목 하나가 1:1로 매핑되지 않는다는 근본적 비대칭성이 자동화의 첫 번째 장벽이다.
둘째, 단가 데이터의 동적인 성격이다. 자재 단가는 매월, 어떤 품목은 매주 바뀐다. BIM 모델 안에 단가를 파라미터로 박아두면, 단가가 변경될 때마다 모델을 열어서 수정해야 하는 지옥이 시작된다. 데이터 성격이 완전히 다른 두 정보를 같은 저장소에 넣으려는 시도 자체가 문제다.
셋째, 변경 이력 추적의 부재다. "지난주 모델에서는 물량이 얼마였고, 이번 주 모델에서는 얼마가 늘었지?" — 이 질문에 답하려면 모델의 스냅샷을 계속 보관하고 비교해야 한다. 대부분의 현장은 최신 버전만 덮어쓰고 있어서 이런 이력 추적 자체가 불가능한 상태다.
[Image: BIM 객체 카테고리(벽, 기둥, 슬래브)와 내역서 항목(거푸집, 철근, 콘크리트, 미장)의 다대다 매핑 관계를 시각화한 다이어그램 — 한 BIM 객체가 여러 내역 항목에 걸쳐 분할되는 패턴을 강조]
5D 파이프라인 설계 — 4가지 핵심 원칙
위 장벽을 넘기 위한 5D 파이프라인은 네 가지 원칙 위에 세워져야 한다.
1) 물량은 모델이, 단가는 외부 DB가 책임진다
이 원칙 하나로 5D 실패의 절반이 해결된다. BIM 모델은 순수하게 형상 기반 물량만 산출하고, 단가는 외부 데이터베이스(또는 엑셀 마스터 파일이라도)에서 관리한다. 물량과 단가는 서로 다른 주기로 갱신되는 별개의 데이터라는 인식이 출발점이다.
물량은 설계 변경 시에만 바뀐다. 단가는 시장 상황에 따라 수시로 바뀐다. 이 둘을 느슨하게 연결해두면, 단가만 변경됐을 때 BIM 모델을 열 필요가 전혀 없어진다. Revit Schedule에서 물량 CSV를 추출하고, 외부 단가 DB와 조인해서 금액을 계산하는 스크립트 하나면 된다.
2) 매핑 테이블을 정적 자산으로 관리한다
BIM 객체 카테고리 ↔ 내역서 항목 간의 연결 규칙을 "매핑 테이블"이라는 정적 문서로 만든다. 이것이 5D 자동화의 엔진이다.
| BIM 카테고리 | 물량 산출 기준 | 내역 코드 | 내역 항목 | 비고 |
|---|---|---|---|---|
| Structural Columns | Volume (㎥) | RC-COL-01 | 철근콘크리트 기둥 타설 | 거푸집 면적 별도 |
| Structural Columns | Area × 4 (㎡) | FM-COL-01 | 기둥 거푸집 (4면) | 원형 기둥은 별도 산식 |
| Structural Columns | Weight (ton) | RB-COL-01 | 기둥 철근 가공·조립 | 철근비 별도 관리 |
| Walls (200mm) | Volume (㎥) | RC-WAL-01 | 철근콘크리트 벽체 타설 | 개구부 공제 여부 확인 |
| Walls (200mm) | Area × 2 (㎡) | FM-WAL-01 | 벽체 거푸집 (양면) | 슬래브 접합부 공제 |
매핑 테이블은 한 번 만들어두면 프로젝트마다 조금씩 다듬어서 재사용할 수 있다. 이 테이블 없이 "그때그때 알아서 매칭"하는 방식으로는 절대 자동화가 되지 않는다.
[Image: 매핑 테이블이 BIM 모델과 단가 DB 사이에서 중간 변환기 역할을 하는 아키텍처 다이어그램 — Revit 물량 → 매핑 테이블 → 내역 코드 → 단가 DB → 최종 원가]
3) 변경을 감지하고 추적하는 메커니즘을 만든다
"저번 달 견적 대비 얼마가 늘었나"에 답하려면, 모델 스냅샷을 버전별로 보관하고 비교하는 파이프라인이 필요하다. 실무에서 가장 현실적인 방식은 이렇다.
- 매월(또는 설계 변경 시마다) Revit 모델에서 물량 Schedule을 CSV로 추출해 Git 또는 클라우드 폴더에 버전별로 저장한다.
- 간단한 Python 스크립트로 최신 CSV와 이전 버전 CSV를 비교(diff)해 물량 증감을 산출한다.
- 변경된 물량에 단가를 곱해 비용 증감을 계산하고, 그 결과를 대시보드(Power BI, Tableau, 혹은 엑셀 차트라도)에 반영한다.
이 체계의 핵심은 Revit 모델 자체를 변경 이력 저장소로 쓰지 않는다는 점이다. 모델은 항상 최신 상태 하나만 유지하고, 과거 상태는 가볍게 CSV 스냅샷으로만 보관한다. Revit 파일 크기(수백 MB~수 GB)를 생각하면 모든 버전을 통째로 보관하는 건 비현실적이기 때문이다.
4) 완전 자동화보다 반자동화를 먼저 달성한다
5D 입문자에게 가장 위험한 함정은 "버튼 하나 누르면 모든 게 자동으로 되는 시스템"을 처음부터 목표로 잡는 것이다. 그런 시스템을 구축하려면 API 연동, 데이터 파이프라인, UI까지 개발해야 하고, 이 과정에서 실제 견적 실무자와의 합의 없이 기술팀끼리만 달리다가 완성된 시스템이 현장에서 외면받는 시나리오가 벌어진다.
반자동화의 현실적 목표는 이거면 충분하다. Revit에서 물량 CSV 추출 → Python으로 매핑 테이블 적용 → 단가 DB 조인 → 최종 원가 엑셀 출력. 이 네 단계만 자동화돼도, 기존에 하루 걸리던 작업이 10분으로 줄어든다. 엑셀 출력 이후의 검수·조정은 견적팀이 직접 하는 걸 당분간 허용하고, 이 과정에서 나오는 피드백으로 매핑 테이블을 지속적으로 보완해 나간다.
[Image: 반자동화 5D 파이프라인의 4단계 워크플로우 — (1) Revit Schedule → CSV, (2) Python 매핑 테이블 적용 스크립트, (3) 단가 DB 조인, (4) 최종 엑셀 견적서 출력]
기성 관리 — 5D의 두 번째 활용
5D BIM이 물량-내역 자동화를 넘어 진짜 힘을 발휘하는 지점은 기성 관리다. 기성 관리란 "이번 달까지 시공된 부분이 계약 금액 대비 얼만큼 진행됐는가"를 측정하는 과정인데, 전통적으로는 현장 기술자가 도면에 형광펜으로 시공 완료 구역을 표시하고, 그 면적을 자(ruler)로 재서 기성률을 계산했다.
BIM에서는 이렇게 바뀐다. 4D 시뮬레이션에서 "이번 달까지 시공 완료"로 마킹된 구역의 BIM 객체들만 필터링해서 물량을 뽑고, 거기에 계약 단가를 곱하면 해당 기간의 기성 금액이 자동으로 산출된다. 각 객체가 "계획일"과 "실제 완료일" 속성을 가지고 있으면, 특정 시점까지 완료된 작업의 물량을 자동 집계할 수 있다.
이때 EVM(Earned Value Management, 획득가치관리) 지표까지 자동 계산할 수 있다. 계획 대비 실제 진도율, 계획 비용 대비 실제 발생 비용, 공정 대비 비용 효율성 같은 지표를 Revit에서 뽑은 숫자로 실시간 갱신하는 것이다. 기존에는 이런 집계 자체가 한 달에 한 번, 회계팀이 야근해서 만드는 보고서의 영역이었다.
기성 검측용 공정 속성을 BIM에 심는 타이밍"계획일"과 "실제 완료일" 파라미터는 맨 처음에 Shared Parameter로 심어두고, 현장 진행에 따라 실제 완료일만 업데이트하는 방식이 실무적이다. Dynamo로 "이번 달 시공 완료 구역"을 Batch로 찍어서 일괄 업데이트하는 스크립트를 하나 만들어두면, 주간 기성 보고가 하루 업무에서 30분 업무로 줄어든다.
마무리
5D BIM은 물량 산출의 정확도가 아니라, 변경이 발생했을 때 비용 영향이 자동으로 따라오는 체계에 가치가 있다. 설계 변경 한 번에 견적팀이 야근하는 구조를 그대로 둔 채 "우리는 BIM 합니다"라고 말하는 건 절반짜리 BIM이다.
현실적인 출발점은 이것이다. 지금 진행 중인 프로젝트 하나를 골라서, Revit Schedule 3개(콘크리트·거푸집·철근)만 Python 스크립트로 읽고, 간단한 매핑 테이블 하나를 만들어서 단가를 곱한 엑셀을 자동 출력해보라. 한 번만 성공해도, "이게 되네"라는 확신이 다음 단계로 가는 연료가 된다.