[방법론] 3. Revit을 활용한 실시간 견적 프로세스

BIM 실시간 견적 방법론

3. Revit을 활용한 실시간 견적 프로세스


이제 실제로 Revit 실시간 견적 시스템이 실무에서 어떻게 구현될 수 있는지를 구체적으로 살펴보자. 우리는 앞서 설계 BIM 모델을 건드리지 않으면서도 실시간 견적 연동을 가능하게 해야 한다고 말했다. 이 원칙을 지키기 위해서는, ‘링크’와 ‘부품화(Parts)’ 기능을 적극적으로 활용하는 방식이 매우 효과적이다. 이 장에서는 Revit 환경을 중심으로 하나씩 단계적으로 풀어낸다. 이 방식은 설계 BIM 팀과 견적 팀이 동시에 작업할 수 있게 하며, 각자의 업무 영역을 침해하지 않으면서도 정보는 실시간으로 공유할 수 있게 해준다.

1단계: 설계 BIM 모델 작성 (설계팀의 영역)

먼저 설계팀은 기존과 동일하게 자신들의 BIM 모델을 작성한다. 이 과정에서는 견적을 고려한 특별한 제약 없이 자유롭게 설계 의도를 구현할 수 있다. 벽체는 벽 도구로, 바닥은 바닥 도구로, 창과 문, 설비와 구조체 등 다양한 구성 요소들이 논리적인 흐름에 따라 모델링된다. 이 BIM 모델은 기본적으로 도면화를 위한 목적이 크지만, 객체에 담긴 수량 정보 또한 자동적으로 내재되어 있다. 중요한 점은, 이 단계에서는 공사코드나 견적용 수량에 대한 고민을 하지 않아도 된다는 것이다. 설계자는 순수하게 설계에 집중하면 된다.

2단계: 견적 프로젝트 파일에서 모델 링크 (견적팀의 영역 시작)

견적팀은 Revit에서 별도의 빈 프로젝트 파일을 연다. 이 파일은 설계 BIM 모델을 ‘링크’로 가져와 연결하는 데 사용된다. 이때 사용하는 링크 기능은 BIM 모델을 읽기 전용으로 불러오는 방식으로, 원본 설계 데이터를 절대 변경하지 않으면서도 그 안의 모든 객체와 속성 정보를 열람할 수 있게 해준다. 링크를 사용함으로써 우리는 설계와 견적의 논리적 독립성을 확보하게 된다. 설계팀은 자신들의 모델을 그대로 유지한 채 변경사항을 반영할 수 있으며, 견적팀은 이 모델을 기준으로 별도의 분석과 작업을 수행할 수 있다.

3단계: 객체별 공사코드 맵핑

링크된 BIM 모델에는 수많은 객체가 포함되어 있다. 이 객체들은 각각 어떤 공사를 의미하는지, 즉 어떤 ‘공사코드’가 적용되어야 하는지를 정의해야 한다. 하지만 링크된 모델에는 직접적으로 파라미터를 삽입할 수 없으므로, 객체의 고유 ID 값을 기준으로 별도의 매핑 테이블을 운영한다. 이 매핑 테이블은 Revit 외부에서 CSV나 데이터베이스 형태로 관리되며, 어떤 객체(예: Element ID 1234567)가 어떤 공사코드(예: 조적벽체_일반_190mm)와 연결되는지를 저장한다. 이 구조 덕분에 설계 BIM은 변경되지 않고, 견적 시스템은 실시간으로 객체별 공사 정보를 추적하고 집계할 수 있다.

4단계: 부품화 기능을 활용한 세분화 및 수량 정제

실무에서는 하나의 벽체가 두 개 이상의 공사코드로 나뉘어야 하는 경우도 많다. 예를 들어, 한 번에 작성된 벽체가 사실은 외벽과 내벽으로 구분되어야 할 경우가 있다. 이처럼 객체 하나가 두 가지 이상의 견적 단위로 분리되어야 한다면, Revit의 ‘부품화(Parts)’ 기능을 사용하면 된다.

부품화 기능을 사용하면, 링크된 모델의 각 객체를 ‘복제’하지 않고도 논리적으로 분할할 수 있다. 예를 들어 벽체 하나를 1/2, 1/3 등으로 나누거나, 상하 분할하여 상단에 다른 공사코드를 부여하는 등의 세밀한 조정이 가능하다. 이 부품 객체들 각각은 원본 객체의 변경사항을 반영하므로, 추후 설계 변경이 발생해도 견적 데이터는 동기화 상태를 유지할 수 있다. 이 기능은 설계와 시공, 견적의 연결고리를 끊김 없이 유지하면서도 실무적인 유연성을 확보하는 핵심 도구가 된다.

5단계: BIM에 객체가 없는 경우의 공사 항목 수량산출 – 세 가지 실질적인 대응 전략

BIM 모델을 활용한 견적 시스템은, 기본적으로 모델에 존재하는 객체를 기준으로 수량을 산출하고 이를 공사코드와 단가에 연계하여 견적을 계산하는 구조다. 그러나 현실의 건축 프로젝트는 그렇게 단순하지 않다. 모든 공사 항목이 눈에 보이는 부재로 존재하지는 않는다. 오히려 많은 경우, 설계 도면에는 나타나지 않지만 반드시 견적에는 포함되어야 하는 항목들이 존재한다. 예를 들어 가설공사, 현장정리, 철근, 거푸집, 일반관리비 등의 항목들이 그렇다. 이런 공사들은 모델링 대상이 아니거나, 모델링하기엔 효율이 너무 떨어지거나, 아예 비물리적인 개념일 수 있다.

그렇다면 이런 항목들을 BIM 기반 견적 시스템에서는 어떻게 처리해야 할까? 우리는 이 문제에 대해 세 가지 방식으로 접근할 수 있다. 각 방식은 항목의 성격과 프로젝트의 여건에 따라 선택되며, 실무에서는 이들을 유연하게 조합하여 사용한다.

일부 항목은 모델링할 필요 자체가 없다. 예를 들어 현장 사무실로 사용할 컨테이너, 현장정리, 공사용 가설울타리, 공통가설비, 일반관리비 등은 물리적으로 3D 객체로 만들 필요가 없으며, 어떤 공간적 좌표나 도면상의 위치와도 직접 연결되지 않는다. 그렇지만 이런 항목들은 어떤 프로젝트에서든 필수적으로 포함되어야 하며, 빠지게 되면 전체 견적의 정확성과 완성도를 해치게 된다.

이런 항목은 견적 담당자가 수기로 직접 입력하여 시스템에 반영하는 것이 가장 현실적이다. Revit의 경우에는 ‘프로젝트 정보’ 영역이나 별도의 카테고리를 생성하여 해당 항목을 등록하고, 수량과 단가를 입력한 뒤 견적서의 한 항목으로 포함시킬 수 있다. 자주 반복되는 항목들은 템플릿으로 미리 구성해두고, 프로젝트 시작 시 불러오는 방식으로 효율화할 수도 있다. 이 방식은 단순하지만 유용하며, 특히 비모델 기반 항목을 빠짐없이 견적에 반영하는 데 매우 효과적이다.

두 번째 방식은, 모델에 객체는 없지만 수량을 정교하게 계산해야 하는 항목들에 적용된다. 대표적인 예가 철근, 거푸집, 각종 보조공사 항목이다. 과거에는 구조 도면을 보면서 보의 길이와 단면을 확인하고, 거푸집 면적을 계산하거나 철근 다발 수를 유추했다. BIM 시대에도 이 방식은 유효하다. 단지 이제는 구조 부재가 모델로 존재하기 때문에, 수량을 사람이 재는 것이 아니라 시스템이 자동으로 추출하게 될 뿐이다.

예를 들어 거푸집 면적은 ‘보 옆면적 + 하부면적’ 등을 조합한 산식으로 구할 수 있고, 철근 중량은 ‘구조체 부피 × 단위중량’과 같은 수식으로 산정할 수 있다. Revit 내 객체에 저장된 체적, 면적, 둘레 등의 수치를 기준으로 계산하면, 과거보다 더 정확하고 반복 가능한 결과를 얻을 수 있다. 산식은 공사코드별로 미리 룰셋으로 정의되어 있어야 하며, 이는 견적 시스템에서 코드별로 자동 적용된다.

이 방식의 장점은 객체를 굳이 그리지 않아도 되는 효율성과 동시에 정량성과 신뢰성을 확보할 수 있다는 점이다. 특히 구조공사의 보조항목이나 반복공정에서 매우 효과적이다.

세 번째 방식은 앞의 두 방식과는 결이 다르다. 모델에 객체가 없지만, 그 공사 항목이 현장에서 매우 중요한 항목일 경우—그리고 그 수량의 신뢰도를 시각적으로 검증해야 할 경우—자동 모델링을 통해 객체 자체를 생성하는 방식을 선택할 수 있다.

예를 들어 철근 자동배근이나 거푸집 자동생성 스크립트는, 산출식 기반으로 생성된 가상의 객체를 모델 내에 배치하여 수량을 산출하게 한다. 이 방법의 가장 큰 장점은 눈으로 직접 확인할 수 있다는 것이다. 즉, 어느 벽에 철근이 누락되었는지, 거푸집이 빠진 구간은 없는지를 3D 뷰에서 실시간으로 검수할 수 있다. 또한 향후 시공 시 샵드로잉과도 연계할 수 있으므로, 공사 계획의 신뢰도를 높이는 데에도 효과적이다.

이 방식은 다만 리소스를 많이 소모하고, 모델 용량이 커질 수 있으므로 일반 설계 BIM 모델과는 별개의 프로젝트 파일에서 수행하는 것이 좋다. 링크로 BIM 모델을 가져온 뒤, 해당 모델 위에 덧그리는 방식으로 자동 모델링을 수행하면, 원본 모델은 그대로 유지되면서도 견적용 객체는 따로 관리할 수 있다. Dynamo나 외부 플러그인, Python 기반 자동화 도구를 활용해 구현할 수 있으며, 프로젝트 초기에 템플릿화해두면 반복 적용이 가능하다.

이처럼, 객체가 없어도 반드시 견적에는 포함되어야 하는 항목은 실무에서 자주 마주치게 된다. 그리고 우리는 수기로 직접 넣든, 산식을 적용하든, 자동 모델링을 활용하든 간에 각 상황에 맞는 유연한 대응 전략을 갖추고 있어야 한다. BIM 기반 견적 시스템은 객체 기반이라는 원칙을 지키면서도, 객체가 없는 예외적인 항목들까지 포괄하는 확장성을 반드시 갖추어야 한다.

결국 이 세 가지 방식은 모두 견적의 완성도를 높이기 위한 장치이며, 사용자는 각 방식의 장단점을 이해하고 현장 상황에 맞게 조합해서 사용할 수 있어야 한다. 중요한 것은 유연성이다. 유연하게 대응할 수 있어야 진정한 의미의 실시간 견적 시스템이 될 수 있고, 이는 BIM을 견적과 시공, 나아가 전체 프로젝트 관리의 중심축으로 자리잡게 하는 데 핵심적인 요소가 될 것이다.

6단계: 공사코드 맵핑 룰셋 정의 – 반복 업무를 줄이고 정확성을 높이다

객체에 공사코드를 부여하는 작업이 수작업으로 진행되더라도, 몇 개 프로젝트만 경험하면 금세 일정한 규칙이 눈에 들어온다. 예를 들어, 벽 객체 중 이름에 ‘시멘트몰탈’이라는 단어가 들어가 있다면, 이는 거의 대부분 ‘벽체 미장공사’에 해당하는 내역과 연결될 것이다. 이런 패턴은 사람의 머릿속에만 머물러 있기보다, 시스템이 스스로 인식하고 처리할 수 있도록 해야 한다. 이를 위해 필요한 것이 바로 공사코드 맵핑 룰셋(rule set) 이다.

공사코드 룰셋은 쉽게 말해, “어떤 조건의 객체에는 어떤 공사코드를 자동으로 부여하라”는 일종의 조건부 규칙이다. 예를 들어 다음과 같은 형태다:

  • 객체 카테고리 == 벽 AND 객체 이름에 ‘몰탈’ 포함공사코드: 벽체미장_일반
  • 재질 == 철근콘크리트 AND 객체 길이 > 5m공사코드: RC기초_중량형

이러한 룰은 엑셀의 IF() 함수나 AND(), OR() 조건을 사용하는 것처럼 직관적으로 구성할 수 있다. 결국 이 룰셋은 하나의 템플릿처럼 저장되며, 프로젝트마다 적용 가능한 기준으로 사용할 수 있게 된다. 그리고 발주처, 시공사, 프로젝트 종류에 따라 룰셋의 버전을 달리 적용하거나 커스터마이징할 수 있어야 한다.

실제 실무에서는 이 룰셋을 엑셀 파일이나 CSV 형태로 유지하고 관리하며, 시스템이 이 파일을 불러와 실시간 맵핑 작업을 수행한다. 이렇게 되면 프로젝트 초기에 한 번만 룰셋을 정의해두면, 이후 대부분의 공사코드는 자동으로 객체에 부여되고, 견적자는 예외적 항목만 손으로 조정하면 된다. 자동화는 반복을 줄이고, 반복이 줄면 사람이 더 중요한 판단에 집중할 수 있다.

7단계: 수량산출식 룰셋 정의 – 똑똑하게 수량을 뽑아내는 방식

공사코드를 객체에 부여하는 것만으로는 견적이 완성되지 않는다. 다음으로 중요한 단계는, 각 공사코드별로 얼마만큼의 수량을 해당 객체에서 추출할 것인지 결정하는 일이다. 이것이 수량산출식 룰셋이다.

수량을 산출하려면 가장 먼저 그 코드의 단위를 알아야 한다. 어떤 공사코드는 m2(면적) 단위로, 어떤 코드는 m(길이) 단위로, 또 어떤 코드는 ton(중량) 단위로 산출해야 한다. 그런데 중요한 점은, 객체가 가진 속성이 작성 방식에 따라 다르다는 것이다. 바닥 도구로 작성된 객체는 면적, 둘레, 두께 등을 가지고 있지만, 벽 도구로 작성된 객체는 면적, 체적, 미연결높이 등의 정보를 가진다. 동일한 ‘둘레’를 구하고자 해도 어떤 도구로 작성되었는지에 따라 직접 추출 가능한 항목이 달라진다.

예컨대, 만약 벽 객체에서 둘레를 산출하고자 하는데, ‘둘레’ 속성이 존재하지 않는다면 어떻게 할까? 이럴 경우, 해당 벽이 직육면체로 모델링되었다는 전제 하에, 둘레 = (길이 + 미연결높이) × 2 라는 산식을 적용할 수 있다. 마찬가지로, 비정형 객체이거나 정면·평면 방향성이 모호한 경우에는 보조 객체를 참조하거나, 평균값 기반의 추정식을 써야 할 수도 있다.

따라서 수량산출 룰셋은 다음과 같은 형태로 구성된다:

  • 공사코드: 벽체미장_일반
    단위: m2
    산출식: 면적 (객체 직접 속성)
  • 공사코드: 걸레받이설치
    단위: m
    산출식: (길이 + 미연결높이) × 2 (계산식 기반)
  • 공사코드: 철근배근_보부재
    단위: kg
    산출식: 보체적 × 단위중량 (재질 정보 + 보조 속성 참조)

이러한 산출 룰셋은 공사코드 룰셋과 마찬가지로, CSV로 관리되는 구조로 만들어 놓고 사용자가 직관적으로 편집할 수 있어야 한다. 실제로는 ‘품명’, ‘규격’, ‘단위’ 등의 내역 기준 정보에 해당 단위와 연계된 산식이 함께 들어가게 되며, 시스템은 이 룰에 따라 객체에서 수량을 자동 추출해낸다.

8단계: 단가 적용 – 다양한 기준을 유연하게 반영하는 구조

객체에 공사코드가 맵핑되고, 수량이 산출되었으면, 이제 마지막 단계는 단가 적용이다. 각 공사코드에는 해당 시점에 맞는 적절한 단가가 부여되어야 하며, 이 단가는 정해진 목록에서 선택하거나 특정 조건에 따라 자동 반영될 수 있어야 한다.

여기서 중요한 것은 단가의 출처와 시점이다. 설계 초기 단계에서는 개략 단가, 기본계획 단계에서는 표준시장단가, 실시설계 단계에서는 발주처 계약 단가를 적용할 수도 있다. 게다가, 동일한 공사코드라도 자재 단가, 노무비, 장비비가 프로젝트 시점이나 지역에 따라 달라질 수 있다.

이를 해결하기 위해 단가 관리 시스템은 다음과 같은 기능을 갖추어야 한다:

  • 기준 단가표 (마스터 테이블) 를 정의하여 코드별 대표 단가를 유지
  • 단가 구성 항목(자재·노무·장비 등) 을 별도로 구분하여 추적
  • 프로젝트별 단가 조정 기능 을 통해 각 단계별 단가 갱신 가능
  • 특정 단가 항목에 대해서는 직접 수기 조정도 허용

이러한 유연성은, 공사비 산정의 정확도를 높이고 시공사의 전략적 견적 대응에도 큰 도움을 준다. 예를 들어, 특정 공정의 원가를 낮추기 위해 자재 단가만 낮춰서 시뮬레이션을 해볼 수도 있고, 시공 일정에 따라 장비 단가를 탄력적으로 반영할 수도 있다.

9단계: 최종 내역서 출력과 확장된 활용 방안

모든 정보가 입력되고 계산되면, 최종적으로 출력되는 것은 견적 내역서다. 기존 방식에서는 수량산출서와 내역서를 별도로 관리했지만, BIM 기반 견적 시스템에서는 수량은 항상 모델로부터 실시간으로 추출되므로 별도의 ‘수량산출서’는 더 이상 필요하지 않다. 대신, 모델과 연계된 내역서만으로도 충분히 신뢰할 수 있는 근거가 된다.

사용자는 내역서의 항목을 클릭함으로써, 어떤 객체에서 어떤 속성으로 수량이 산출되었는지를 즉시 확인할 수 있다. 이 과정은 기존 수량산출서의 검수 과정을 대체하며, 더 직관적이고 시각적인 검증 환경을 제공한다.

또한 BIM 기반 견적 내역서는 공종별 분류를 넘어, 공간별, 공정별, 부위별, 조건별로 자유롭게 분류할 수 있다. 예를 들어 “방화구획에 해당하는 공사는 얼마인가요?”, “지하층 구조물 중 전기공사 항목은 얼마인가요?”와 같은 질문에 즉시 응답할 수 있다. 이는 기존 견적 방식에서는 상상하기 어려운 정밀한 분석 기능이며, 나아가 시공단계의 기성관리, 공정관리, 리스크관리로도 확장될 수 있다.

– CNV 박도윤 –

FAQ

Revit 링크를 쓰면 설계 모델이 변경되나요?

아니요. 링크는 읽기 전용으로 불러와 설계·견적의 독립성을 유지합니다.

부품화를 사용하면 수량을 세분화할 수 있나요?

가능합니다. 원본을 복제하지 않고 분할해 정밀 수량화가 가능합니다.

BIM 모델에 없는 공사 항목은 어떻게 처리하나요?

수기 입력, 산식 기반 산출, 자동 모델링 3가지 방식으로 대응할 수 있습니다.

공사코드와 수량 산출은 어떻게 자동화하나요?

맵핑 룰셋과 수량 산출식 룰셋을 CSV/DB로 관리해 자동 적용됩니다.

단가 적용은 어떻게 관리하나요?

기준 단가표와 프로젝트별 조정 기능을 결합해 유연하게 반영할 수 있습니다.

현재 페이지 주소가 클립보드에 복사되었습니다.

이런 이야기는 어때요?

Open bim ifc
IFC
[OPEN BIM | IFC] 1. IFC 건설 현장의 복잡성을 풀어내다
실내건축 BIM
[실내건축] 2. 실내건축에서 시작하는 BIM 건설 기술
Open bim ifc
IFC
[OPEN BIM | IFC] 2. IFC 보이지 않는 설계도
실내건축 BIM
[실내건축] 3. BIM 건설 기술, 실내건축에서 산업 전반으로 확산하다