1. 연구배경 및 목적
건설 산업에서 building information modeling (BIM)의 활용이 확대됨에 따라, 설계 단계에서 생성되는 디지털 정보의 양이 급격히 증가하고 있으며, 이를 효과적으로 관리하고 활용하기 위한 기술의 중요성이 증대되고 있다. BIM은 단순한 3차원 시각화 도구를 넘어 상호운용성, 건물 정보 통합, 간섭 감소 등의 이점을 제공하며, 설계⋅시공⋅운영 전 생애주기에 걸쳐 데이터 기반 의사결정을 지원하는 핵심 인프라로 자리잡고 있다(
1,
2).
특히 mechanical, electrical, plumbing, fire protection (MEPF) 설비 분야에서는 배관, 피팅, 밸브 및 펌프 등 다양한 요소가 포함되며, 이러한 요소들은 물량 산출, 공사비 산정 및 공정 관리에 직접적으로 활용된다.
전통적인 수량산출은 2D 도면 기반의 수작업 방식으로 수행되어 왔으며, 이는 시간 소모가 크고 인적 오류에 취약한 비효율적인 방법으로 알려져 있다. BIM 기반 수량산출은 모델로부터 기하 및 속성 정보를 자동 추출할 수 있다는 점에서 효율성과 정확성을 크게 향상시킬 수 있으나, 실제 적용에서는 모델의 품질, 파라미터 일관성 및 데이터 구조의 불일치로 인해 수량산출 결과의 신뢰성이 저하되는 문제가 지속적으로 보고되고 있다(
3). 불완전한 모델링 정보나 비표준화된 속성 데이터는 수량 오차 및 항목 누락을 발생시키며, 이는 공사비 산정 및 프로젝트 관리에 직접적인 영향을 미친다.
MEPF 설비 시스템의 경우 이러한 문제는 더욱 두드러진다. 배관은 길이 기반 데이터, 피팅 및 밸브는 개수 기반 데이터로 구성되는 등 서로 다른 데이터 구조를 가지므로, 이를 하나의 통합된 수량산출 체계로 변환하는 과정에서 비효율과 오류 가능성이 증가한다. 또한 Revit과 같은 BIM 프로그램에서 제공하는 기본 수량산출 기능은 사용자의 수동 설정에 의존하는 구조로, 카테고리별 필드 구성, 필터링 및 정렬 과정에서 반복적인 작업이 요구되며, 설계 변경 시 재작업이 불가피하다. 더불어 패밀리 내 규격 표기 불일치 및 문자열 데이터의 비정형성은 동일 요소를 상이한 항목으로 분류하게 하여 수량산출 결과의 일관성과 재현성을 저하시킨다.
한편, BIM 데이터의 활용 수준은 단순 데이터(data) 단계에서 정보(information), 지식(knowledge), 의사결정(wisdom) 단계로 확장될 수 있으며, 이러한 계층적 구조는 data-information- knowledge-wisdom (DIKW) 모델로 설명된다(
4). 본 연구에서는 이러한 BIM 기반 수량산출 프로세스에 적용하여, 데이터 처리 수준을 넘어 의사결정 지원까지 확장 가능한 프레임워크를 제시하고자 한다.
Figure 1은 Revit BIM 모델로부터 추출되는 배관 길이, 직경, 재질 및 피팅 유형과 같은 원시 데이터가 자동 수량산출 과정을 통해 정보로 변환되고, 나아가 공종별 수량 패턴 분석 및 설계 변경 추적을 통해 지식 수준으로 발전하며, 최종적으로 공사비 산정 및 설계 최적화를 지원하는 의사결정 단계로 확장되는 과정을 나타낸다. 이는 기존 BIM 활용이 단순 데이터 추출 수준에 머무르는 한계를 넘어, 데이터 기반 의사결정 지원 체계로 발전할 수 있음을 시사한다.
Figure 1
국내외 선행연구에서는 BIM 기반 자동화 기술이 다양한 형태로 발전되어 왔다. 예를 들어, BIM 템플릿을 활용하여 시공상세도를 자동 생성하는 연구에서는 모델링 속성과 구조를 사전에 정의함으로써 생산성을 향상시킬 수 있음을 제시하였다(
5,
6). 또한 BIM 기반 자동화 및 데이터 처리 기술은 설계 효율성 향상과 반복 작업 감소에 기여하는 것으로 보고되고 있다(
7). 최근에는 클라우드 기반 BIM 수량산출 프레임워크가 제안되면서, 자동화된 수량산출뿐만 아니라 데이터 검증 및 품질 관리의 중요성이 강조되고 있다(
3).
그러나 소방배관과 같이 다양한 MEPF 카테고리가 혼재된 시스템에서는 이질적인 데이터 구조를 통합하여 자동 수량산출을 수행할 수 있는 체계적인 접근이 여전히 부족하다. 특히, BIM 데이터의 정제 및 정규화 과정 없이 단순 추출에만 의존할 경우 수량산출 결과의 일관성과 재현성을 확보하기 어렵다. 이에 따라 이러한 한계를 극복하기 위한 체계적인 방법론의 필요성이 제기된다(
7).
따라서 본 연구에서는 Autodesk Revit 2026 기반 소방배관 BIM 모델을 대상으로 Dynamo 시각적 프로그래밍과 Python 스크립트를 결합한 자동 수량산출 알고리즘을 개발하였다. 이질적인 데이터 구조를 갖는 MEPF 요소를 통합적으로 처리하기 위하여 각 요소를 공통된 데이터 형식으로 정규화하고, 이를 기반으로 자동 집계가 가능한 수량산출 데이터 구조를 구성하였다. 또한 문자열 정제 및 데이터 정규화 과정을 통해 수량산출 결과의 일관성과 신뢰성을 확보하였다. 나아가 본 연구는 공사비 산정 및 설계 의사결정 지원으로 확장 가능한 BIM 기반 자동화 프레임워크의 실무 적용 가능성을 제시하고자 한다.
2. 알고리즘 설계 및 데이터 구조
본 연구에서 적용한 소방배관 자동 수량 산출 알고리즘은 Autodesk Revit에 내장된 시각적 프로그래밍 환경인 Dynamo를 기반으로 구현되었다. 알고리즘의 구성 시 핵심과제는 Revit 모델 내에 존재하는 배관(pipe), 피팅(fitting), 밸브(valve), 펌프(pump) 등 서로 다른 카테고리의 요소들이 각기 상이한 특성과 속성을 가지며, 이로 인해 데이터 처리 및 통합 과정에서 복잡성이 발생한다는 점이다(
8). 배관 요소는 길이(mm)로 산출되지만, 피팅 및 밸브, 펌프는 개수(ea)로 산출된다. 이처럼 이질적인 데이터를 하나의 수량 산출표로 통합하기 위해, 모든 요소를 단일한 5차원 행 벡터로 변환하는 행렬 기반 데이터 구조를 적용하였다.
먼저, Revit 모델에서 추출된 각 MEPF 요소를 나타내는 인덱스
i는 구분(
ci), 품명(
ni), 규격(
si), 배관길이(
li), 수량(
qi) 다섯가지 속성으로 구성된 행 벡터로 식(1)과 같이 표현된다(
9). 여기서
R5는 5개의 속성값으로 구성됨을 나타낸다. 구분, 품명, 규격은 문자열 형태로 처리되며, 동일한 구분⋅품명⋅규격 조합을 키(key)로 설정하여 항목을 식별하고 집계하는데 활용된다. 배관 요소의 경우,
li는 실제 배관의 길이값을 가지며
qi는 0으로 정의한다. 반면, 피팅, 밸브 및 펌프와 같은 요소는 길이를 갖지 않으므로,
li= 0으로 설정하고, 수량을 나타내는
qi값을 갖도록 정의한다. 이러한 정의를 통해 길이 기반 요소와 개수 기반 요소를 단일 벡터 구조 내에서 통합적으로 표현할 수 있다. 이에 따라 모든 MEPF 요소는 카테고리에 관계없이 5차원 벡터로 표현된다.
정규화된 데이터는 규격을 나타내는 변수 Si를 기준으로 그룹화되며, 동일한 규격을 갖는 요소들의 인덱스 집합은 식(2)와 같이 정의한다.
여기서 G(s)는 그룹 함수로, 규격 s를 갖는 요소들의 인덱스 집합을 의미하며, S는 전체 요소로부터 추출된 규격의 집합이다.
구경별 배관의 길이는 식(3)과 같이 해당 그룹에 속한 모든 요소의 길이 합으로 계산된다.
피팅⋅밸브⋅펌프와 같은 부속류는 품명과 규격의 조합 k = (n, s)을 기준으로 그룹화되며, 동일한 조합 k에 속하는 요소의 개수는 다음 식(4)와 같이 정의된다.
산출된
L(s)와
Q(k)는 각각 배관의 길이 및 부속 수량 정보로서 식(5)의 수량산출 데이터 구조를 구성하는 데 활용된다. 전처리 과정에서 Revit family 내 특수문자 및 표기 불일치 문제를 보정하고, 시스템 분류 파라미터를 이용하여 소방배관에 해당하는 요소만을 필터링하였다. 이후 각 요소를 공통된 데이터 구조로 정리한 뒤, 이를 수직 방향으로 결합하여 다음과 같은 수량 산출 행렬 M을 구성한다(
10).
여기서 N은 전체 요소의 개수로, 각 카테고리별 요소 수의 합으로 정의된다. 구성된 행렬 M은 CSV 파일로 저장되며, 헤더 행(구분, 품명, 규격, 길이, 수량)을 포함한 최종 수량 산출표로 출력된다. 이를 통해 Revit을 이용한 설계 변경 시 알고리즘을 재실행하는 것만으로 최신 수량 정보를 즉시 확보할 수 있다(
6).
3. 연구방법
본 연구는 건축설비 및 소방배관의 데이터 추출 및 자동화를 위해 Autodesk Revit 기반의 BIM 모델을 구축하였다. 대상 모델은 실제 건축물의 설비 구성을 위하여 위생설비 배관, 공조 덕트 시스템 그리고 소방 배관 시스템으로 구성되었으며, 각 설비 요소는 파이프, 피팅, 밸브 및 기계설비로 세분화하여 모델링하였다. 또한, 각 요소에는 직경, 규격 및 재질과 같은 주요 속성 정보가 포함되도록 정의하였다.
Figure 2는 해당 모델의 입면도이며
Figure 3은 아이소메트릭 뷰로 설비배관 시스템의 3차원적 구성을 보여준다.
Figure 2
Revit BIM model of fire protection piping system (Elevation view).
Figure 3
Revit BIM model of fire protection piping system (Isometric view).
구축된 Revit BIM 모델을 기반으로 소방배관의 수량을 자동 산출하기 위해
Figure 4와 같은 알고리즘 플로우차트를 설계하였다. 알고리즘은 INPUT, FILTER, PROCESS, MERGE, OUTPUT의 5단계로 구성된다. INPUT 단계에서는 Revit BIM 모델을 입력 데이터로 활용한다. Dynamo의 Element 수집 노드를 통해 모델 내의 MEPF 요소를 배관 세그먼트, 피팅, 밸브⋅스프링클러, 펌프의 4개 카테고리로 분류하여 추출한다.
Figure 4
Automation algorithm flowchart.
Filter 단계에서는 Revit BIM 모델의 배관 요소를 대상으로 시스템 분류(system classification) 파라미터를 기준으로 소방배관 요소를 선별하였다. 전체 배관 요소에서 해당 파라미터 값을 추출한 후, ‘Fire Protection’ 조건과 일치하는 요소만을 필터링하여 최종 소방배관 요소 집합을 구성하였다. 이 과정에서 파라미터 값과 조건값의 일치 여부를 Boolean 값(true/false)으로 판별하고, 조건에 해당하는 요소만을 추출함으로써 타 설비 계통 요소와의 혼재를 방지하였다.
Process 단계에서는 필터링된 요소들에 대해 카테고리별로 파라미터를 추출하고 이를 정규화한다. 배관 세그먼트는 규격과 길이 파라미터를 추출하여 전처리과정을 수행한다. 피팅은 패밀리명과 규격 파라미터를 기준으로 그룹화한 후 수량을 산출하며, 펌프는 패밀리 타입 정보로부터 규격 문자열을 분리하여 개수를 집계한다. 각 카테고리의 처리 결과는 ‘구분⋅품명⋅규격⋅길이⋅수량’의 5개 열로 구성된 행 벡터로 정규화된다.
Merge 단계에서는 카테고리별로 산출된 행 벡터들을 하나의 통합 행렬로 병합한다(
11). 동일한 구분⋅품명⋅규격 조합을 키(key)로 설정하여 중복 항목을 집계하며, 배관은 길이를 누적 합산하고 피팅⋅밸브⋅펌프는 개수를 누적 합산한다. 최종적으로 헤더 행을 포함한 N × 5 크기의 수량 산출 행렬 M이 구성된다.
Output 단계에서는 구성된 행렬 M을 CSV 파일로 저장한다. 출력 경로는 Dynamo 스크립트 내 코드블록에서 지정하며, 저장된 CSV 파일은 헤더행을 포함한 최종 수량 산출표로 출력된다.
Figures 5와
6은 앞서 제시한 전체 알고리즘 흐름을 실제 Dynamo 및 Python 코드 수준에서 구현한 세부 절차를 나타낸다. 먼저
Figure 5는 Revit BIM 모델로부터 소방배관 수량산출에 필요한 데이터를 추출하고, 이를 항목별로 분류⋅가공하는 Dynamo 코드 워크플로를 보여준다. 본 워크플로는 Filter 단계에서 선별된 소방배관 요소를 대상으로 하며, 배관 세그먼트, 피팅, 밸브 및 펌프의 4개 카테고리로 구분하여 각 요소의 주요 파라미터를 추출하도록 구성하였다. 배관 세그먼트의 경우 직경, 길이, 배관 규격 정보를 수집하고, 피팅과 밸브는 패밀리명 및 규격을 기준으로 식별⋅분류하였다. 또한 펌프는 기계설비 카테고리에서 별도로 수집한 후 패밀리 타입 정보를 활용하여 장비명을 추출하였다. 이와 같은 과정은 서로 다른 속성 체계를 갖는 MEPF 요소를 동일한 수량산출 체계로 변환하기 위한 전처리 단계에 해당한다.
Figure 5
Detailed dynamo code workflow for pipe data extraction and CSV generation.
Figure 6
Python script for data normalization and unified matrix construction.
이 과정의 핵심은 카테고리별로 상이한 데이터 구조를 공통 형식으로 정규화하는 데 있다. 배관은 길이 기반 항목으로서 길이 값을 유지하고 수량은 공란으로 처리하였으며, 피팅, 밸브 및 펌프는 개수 기반 항목으로서 길이 값은 공란으로 두고 수량 정보를 기록하도록 하였다. 이를 통해 서로 다른 속성 체계를 갖는 MEPF 요소를 일관된 형식으로 통합하고, 후속 항목별 집계가 가능한 데이터 구조로 변환하였다.
또한 Dynamo Python 스크립트를 활용하여 Revit에서 추출된 데이터의 규격 표기 형식을 정규화하였다. 불필요한 특수기호 및 중복 문자열을 제거하고, 단위를 통일하였으며, 소수점 이하 값을 정리하여 표기 형식을 표준화하였다. 이를 통해 동일 항목이 서로 다른 형식으로 인식되는 데이터 불일치 및 중복 집계를 최소화하고, 추출된 요소 데이터를 항목별로 정리하여 집계 및 분석이 가능한 행 벡터 형태로 변환하였다.
Figure 6은
Figure 5에서 생성된 카테고리별 행 벡터를 Python 스크립트를 통해 정규화하고 하나의 통합 수량 행렬로 재구성하는 과정을 나타낸다. 스크립트에서는 먼저 입력 데이터를 리스트 형태로 변환한 후, 배관⋅피팅⋅밸브⋅펌프별로 명칭, 규격, 길이, 수량 값을 정리하였다. 이때 배관 항목은 배관명과 규격 문자열을 정제하고, 길이 값을 정수형으로 변환하여 합산이 가능하도록 정규화하였다. 피팅과 밸브는 패밀리명 및 규격 문자열에서 불필요한 접두어와 특수기호를 제거하고, 수량 값을 정수형으로 변환하였다. 펌프의 경우 패밀리 타입 문자열로부터 장비명과 규격 정보를 분리하여 동일한 형식으로 정규화하였다.
이후 Merge 알고리즘을 적용하여 카테고리 간 데이터를 통합하였다. 병합 기준 키는 “구분, 품명, 규격”의 조합으로 설정하였으며, 동일 키를 갖는 배관 항목은 길이를 누적 합산하고, 피팅⋅밸브⋅펌프 항목은 수량을 누적 합산하였다. 이를 통해 서로 다른 속성 체계를 갖는 요소들을 하나의 일관된 데이터 구조로 통합하였다.
최종적으로 통합된 데이터는 “구분, 품명, 규격, 길이, 수량”으로 구성된 행 단위의 정형화된 수량산출 행렬로 재구성되었으며, CSV 형식으로 저장되어 후속 물량 산출 및 공사비 산정에 활용될 수 있도록 하였다. 즉,
Figure 6의 Python 스크립트는 Dynamo에서 생성된 분산 데이터를 실질적인 수량산출 결과로 변환하는 최종 처리 단계에 해당한다.
4. 결과 및 검증
본 연구에서는 Dynamo 기반 자동 수량산출 알고리즘을 소방배관 BIM 모델에 적용하여 카테고리별 데이터 추출 결과를 검증하였다.
Figure 7은 배관, 피팅, 밸브, 펌프의 4개 카테고리에 대한 출력 결과를 나타낸다. 각 항목은 “구분, 품명, 규격, 수량”으로 구성된 정형화된 데이터 구조로 일관되게 추출되었음을 확인하였다.
Figure 7
Dynamo watch node output by MEPF category.
배관 항목(
Figure 7(a))의 경우, “Carbon steel-SCH40” 규격의 배관이 호칭 직경렬로 분류되어 출력되었으며, 피팅 항목(
Figure 7(b))은 엘보, 티, 레듀서 등 다양한 유형이 규격 문자열과 함께 개수 기반으로 정리되었다. 밸브 항목은(
Figure 7(c)) water hammer arrestor, butterfly valve, alarm valve 등 유형별로 규격과 수량이 추출되었으며, 펌프 항목(
Figure 7(d))은 패밀리 타입 문자열로부터 장비명과 규격 정보가 분리되어 출력되었다. 이와 같이 서로 다른 속성 체계를 갖는 MEPF 카테고리별 요소가 동일한 행 벡터 구조로 변환됨으로써, 후속 Python 스크립트를 통한 통합 처리가 가능한 형태로 데이터가 구성되었다. 또한, Watch node를 통한 시각화는 각 요소의 분류 및 집계 상태를 직관적으로 확인할 수 있도록 하여 데이터 검증 과정에서 유용하게 활용된다.
Python 스크립트를 통해 카테고리별 행 벡터를 병합한 최종 통합 수량산출 결과는
Table 1에 나타내었다. 배관 항목의 경우 동일 재질에 대해 다양한 직경 조건(20 mm~150 mm)에 따른 총 길이가 자동으로 계산되었으며, 직경별로 세분화된 길이 값이 체계적으로 집계되었다. 피팅의 경우 엘보, 티, 레듀서 등 다양한 부속의 패밀리명과 규격 조합을 기준으로 그룹화되어 수량이 산출되었으며, 특히 서로 다른 관경을 연결하는 레듀서 경우에도 정확한 분류가 이루어졌다. 또한, 밸브 및 펌프 항목은 패밀리 타입 정보를 기반으로 자동 분류 및 수량 집계가 수행되었으며, 펌프의 경우 용량 정보(LPS 및 압력 조건)가 포함된 상태로 데이터가 정리되었다. 이러한 결과는 기존의 Revit 기반 수량산출 방식과 비교할 때 높은 정확성과 일관성을 확보할 수 있음을 보여준다. 생산된 수량산출 결과는 CSV 형식으로 저장되어 공사비 산정 및 발주 자료로 즉시 활용 가능한 형태로 출력되었다.
Table 1
Automated Quantity Takeoff Results of Fire Protection Piping System Using Dynamo
|
Category |
Description |
Size |
Length (mm) |
Quantity (ea) |
|
Pipe |
Carbon Steel - SCH 40 |
20 mm |
73,870 |
- |
|
Pipe |
Carbon Steel - SCH 40 |
25 mm |
155,404 |
- |
|
Pipe |
Carbon Steel - SCH 40 |
32 mm |
79,111 |
- |
|
Pipe |
Carbon Steel - SCH 40 |
40 mm |
39,315 |
- |
|
Pipe |
Carbon Steel - SCH 40 |
50 mm |
12,255 |
- |
|
Pipe |
Carbon Steel - SCH 40 |
65 mm |
10,513 |
- |
|
Pipe |
Carbon Steel - SCH 40 |
80 mm |
28,307 |
- |
|
Pipe |
Carbon Steel - SCH 40 |
100 mm |
11,340 |
- |
|
Pipe |
Carbon Steel - SCH 40 |
150 mm |
4,140 |
- |
|
Fitting |
FP-Pipe Fitting-Elbow Threaded |
20 mm |
- |
212 |
|
Fitting |
FP-Pipe Fitting_Tee_Threaded |
25 mm-20 mm |
- |
106 |
|
Fitting |
Cap End-Grinnell |
25 mm |
- |
28 |
|
Fitting |
FP-Pipe Fitting-Reducing_Threaded |
32 mm-25 mm |
- |
56 |
|
Fitting |
FP-Pipe Fitting-Reducing_Threaded |
40 mm-25 mm |
- |
28 |
|
Fitting |
FP-Pipe Fitting-Elbow Threaded |
100 mm |
- |
4 |
|
Fitting |
FP-Pipe Fitting_Tee_Threaded |
100 mm |
- |
2 |
|
Fitting |
FP-Pipe Fitting-Reducing_Threaded |
80 mm-65 mm |
- |
4 |
|
Fitting |
FP-Pipe Fitting-Reducing_Threaded |
100 mm-80 mm |
- |
4 |
|
Fitting |
FP-Pipe Fitting_Tee_Threaded |
50 mm-40 mm |
- |
6 |
|
Fitting |
FP-Pipe Fitting_Tee_Threaded |
40 mm |
- |
12 |
|
Fitting |
FP-Pipe Fitting-Reducing_Threaded |
65 mm-50 mm |
- |
4 |
|
Fitting |
FP-Pipe Fitting_Tee_Threaded |
65 mm-40 mm |
- |
4 |
|
Fitting |
FP-Pipe Fitting_Tee_Threaded |
80 mm-40 mm |
- |
2 |
|
Fitting |
FP-Pipe Fitting_Tee_Threaded |
150 mm-100 mm |
- |
2 |
|
Fitting |
FP-Pipe Fitting-Reducing_Threaded |
150 mm-100 mm |
- |
2 |
|
Valve |
Sprinkler_Pendant |
20 mm |
- |
98 |
|
Valve |
PA_Water Hammer Arrestor |
50 mm |
- |
4 |
|
Valve |
PA_Water Hammer Arrestor |
150 mm |
- |
1 |
|
Valve |
FLEXIBLE JOINT_10 K |
150 mm |
- |
1 |
|
Valve |
Butterfly Valve-Gear |
150 mm |
- |
1 |
|
Valve |
Alarm Valve |
100 mm |
- |
1 |
|
Pump |
Base-Mounted Pump |
63 LPS-343 kPa |
- |
1 |
5. Revit 기본 기능과의 비교 분석
Figure 8은 기존 Revit 기반 수량산출 방식과 본 연구에서 제안한 Dynamo 기반 자동화 알고리즘의 처리 시간을 비교한 결과를 나타낸다. 기존 방식에서는 배관, 피팅, 밸브, 펌프 등 각 카테고리별로 개별 일람표를 생성한 후 필드 선택, 필터링, 정렬, 엑셀 변환 및 합산 작업을 순차적으로 수행해야 하므로 작업 단계가 많고 누적 처리 시간이 증가하는 특징을 보인다. 특히 Excel 프로그램에서의 최종 수정, 필터링 및 합산 단계에서 가장 많은 시간이 소요되는 것으로 확인되었다.
Figure 8
Comparison of processing time between manual revit workflow and dynamo automation.
반면, 제안된 방법은 모든 카테고리를 통합된 데이터 구조로 처리함으로써 전체 수량산출 과정을 단일 자동화 프로세스 내에서 동시에 수행할 수 있으며, 별도의 후처리 없이 즉시 결과를 도출할 수 있다. 그 결과, 기존 방식에서 약 37 min이 소요되던 작업이 약 1 s 이내로 단축되어 약 99.95%의 시간 절감 효과를 확인하였다.
이와 같은 결과는 단순한 작업 시간 단축을 넘어, 반복적인 수작업 과정에서 발생할 수 있는 입력 오류 및 누락 가능성을 감소시키고, 수량산출 과정의 일관성과 재현성을 향상시킬 수 있음을 의미한다. 따라서 제안된 알고리즘은 기존 Revit 기반 수량산출 방식 대비 자동화 수준과 처리 효율성 측면에서 우수한 성능을 보인다. 또한, 건물 규모의 증가 및 배관 시스템의 복잡도 증가에 따라 기존 수동 방식의 처리 시간은 더욱 증가할 것으로 예상되며, 이에 따라 제안된 방법의 시간 절감 효과는 더욱 크게 나타날 것으로 기대된다.
Table 2는 기존 Revit 기반 수량산출 결과와 제안된 Dynamo 기반 알고리즘의 수량산출 결과를 비교하여 정확성을 검증한 결과를 나타낸다. 본 연구에서는 수량산출 결과의 정확도를 검증하기 위해, 배관의 총 길이와 피팅, 밸브 및 펌프의 총 개수를 기준으로 비교를 수행하였다. 그 결과, 배관 길이에서 약 99.997%의 일치율을 보였으며, 피팅, 밸브 및 펌프 항목에서는 100% 일치하는 결과를 확인하였다. 이를 통해 제안된 알고리즘이 기존 수량산출 방식과 비교하여 높은 수준의 정확성과 신뢰성을 확보하고 있음을 확인할 수 있다.
Table 2
Accuracy Comparison of Quantity Takeoff Results Between Revit QTO and Dynamo
|
Category |
Revit QTO |
Dynamo |
Accuracy |
|
Pipe (Total Length) |
414.25 m |
414.26 m |
99.997% |
|
Fitting (Total Count) |
476 ea |
476 ea |
100% |
|
Valve (Total Count) |
106 ea |
106 ea |
100% |
|
Pump (Total Count) |
1 ea |
1 ea |
100% |
제안된 Dynamo 기반 수량산출 알고리즘과 Revit 기본 일정표/수량(schedule/quantities) 기능을 비교한 결과를
Table 3에 나타내었다. 비교 항목은 대상 요소, 파라미터 추출 방식, 분류 방법, 수량 집계, 출력 형식 유연성, 재사용성 및 자동화 수준의 7개 항목으로 구성하였다.
Table 3
Dynamo-Based Quantity Takeoff Algorithm and the Revit Schedule/Quantities Function
|
Comparison Item |
Native Revit Schedule |
Proposed Dynamo-Based Algorithm |
|
Target Elements |
User-Selected Categories |
MEPF Piping Components (Pipe, Fittings, Valves, Pumps) Categorized and Processed in Parallel |
|
Parameter Extraction |
Direct Parameter Listing |
Parameter Extraction With Post-Processing for Unit Conversion and String Normalization |
|
Classification Method |
Manual Field Selection, Sorting, and Filtering |
Automated Grouping and Aggregation by Piping Specification and Nominal Diameter |
|
Quantity Aggregation |
Basic Count and Length |
Automated Aggregation by Diameter, Family, and Component Type |
|
Output Format Flexibility |
Limited to Revit Schedule Structure |
Structured Output Table Defined and Generated Via Code |
|
Reusability |
Project-Dependent Schedule Settings |
Reusable Workflow Applicable to Similar Fire Protection Piping Projects |
|
Automation Level |
Semi-Automatic |
Fully Automated Once Workflow is Configured |
기존 Revit 기본 기능은 사용자가 카테고리와 필드를 선택하는 방식으로 운영되며, 수량 산출을 위해서는 필드 선택, 필터 설정, 정렬 및 그룹화 과정을 수동으로 수행해야 한다. 특히, 동일한 요소라도 규격 표기 방식이 상이할 경우, 이를 일관된 기준으로 정리하기 위해 추가적인 후처리가 필요하다. 또한, 출력 결과는 Revit 내부 스케줄 구조에 종속되므로, 사용자 요구에 따른 출력 형식의 유연한 변경이 제한적이며, 프로젝트별로 설정을 반복해야 하는 한계가 존재한다.
반면, 본 연구에서 제안한 Dynamo 기반 방식은 배관, 피팅, 밸브 및 펌프와 같은 MEPF 구성 요소를 자동으로 분류하고 병렬적으로 처리함으로써 데이터 처리 효율을 향상시킨다. 특히, 파라미터 추출 과정에서 문자열 정제 및 데이터 정규화를 자동으로 수행하여 데이터의 일관성을 확보하며, 배관 규격 및 직경을 기준으로 자동 그룹화 및 집계가 이루어진다. 이러한 자동화된 처리 방식은 기존 Revit 스케줄에서 요구되는 반복적인 수작업을 제거하고, 데이터 처리 과정의 신뢰성을 향상시키는 데 기여한다.
또한, 수량 집계 측면에서도 기존 방식은 단순 길이 및 개수 산출에 머무르는 반면, 제안된 알고리즘은 직경, 패밀리 유형 및 구성 요소 특성을 동시에 고려한 다차원적 집계가 가능하다. 이를 통해 보다 정밀하고 구조화된 수량 정보를 제공할 수 있으며, 복잡한 소방 배관 시스템에서도 효율적인 데이터 관리가 가능하다.
출력 형식 측면에서 제안된 방식은 Python 기반 코드로 결과 테이블이 정의되므로, 프로젝트 요구사항에 따라 항목 구성 및 데이터 형식을 유연하게 변경할 수 있다. 이는 Revit 스케줄의 고정된 구조와 비교할 때 중요한 차별점이며, 다양한 보고서 및 물량 산출 형식에 대응할 수 있는 확장성을 제공한다.
재사용성 측면에서도 기존 Revit 방식은 프로젝트별로 설정을 반복해야 하는 반면, 제안된 Dynamo 워크플로우는 유사한 소방 배관 프로젝트에 그대로 적용 가능하다. 따라서 초기 설정 이후에는 추가적인 작업 없이 반복 활용이 가능하며, 실무 적용 시 작업 효율성을 크게 향상시킬 수 있다.
6. 결론 및 향후 연구방향
본 연구에서는 Revit 기반 BIM 환경에서 소방배관 시스템의 자동 수량산출을 수행하기 위하여 Dynamo와 Python 스크립트를 활용한 알고리즘을 제안하였다. 제안된 방법은 배관, 피팅, 밸브 및 펌프와 같이 서로 다른 데이터 구조를 가지는 MEPF 요소들을 통합적으로 처리하기 위해, 각 요소를 5개 항목으로 구성된 데이터 구조로 정규화하고, 이를 기반으로 통합 수량산출 데이터 구조를 구성하는 처리 체계를 구축하였다. 또한 Revit 패밀리 내 규격 표기 불일치 및 불필요한 특수기호 문제를 해결하기 위해 문자열 정제 과정을 적용함으로써 데이터 처리의 일관성과 신뢰성을 확보하였다.
Dynamo 워크플로우와 Python 기반 후처리 과정을 결합한 결과, 데이터 추출, 정규화 및 통합이 자동화된 수량산출 체계를 구현할 수 있었으며, 카테고리별 수량산출 결과가 정확하게 도출됨을 확인하였다. 또한 기존 Revit 스케줄 기능 대비 자동화 수준, 데이터 처리 일관성, 출력 형식의 유연성 및 재사용성 측면에서 개선된 처리 체계를 구성할 수 있었다. 특히 반복적인 전처리 작업을 자동화함으로써 수량산출 결과의 재현성과 객관성을 높일 수 있었다.
이를 통해 본 연구에서 제안한 방법은 복잡한 MEPF 시스템 환경에서도 다양한 속성을 갖는 요소를 효율적으로 처리할 수 있으며, BIM 기반 설비 설계 및 물량 산출 자동화를 위한 실용적인 확장 가능성을 가지는 것으로 판단된다.
다만, 본 연구에서는 수량산출 알고리즘의 개발 및 자동화 체계 구축에 초점을 두었기 때문에, 입력 데이터의 변동성이 수량산출 결과에 미치는 영향에 대한 민감도 분석은 연구 범위에 포함하지 않았다. 향후 연구에서는 BIM 데이터의 변동성에 따른 민감도 및 오류 발생 가능성을 체계적으로 분석함으로써, 제안된 알고리즘의 적용 범위와 신뢰성을 보다 정량적으로 검증할 예정이다.
또한, 본 연구에서 구현된 Dynamo 기반 알고리즘을 Revit API 및 C# 환경으로 확장하여 보다 고도화된 자동화 시스템으로 발전시키고자 한다. 특히, Revit Add-in 형태로 구현함으로써 모델 데이터 변경 시 자동 갱신 및 이벤트 기반 처리가 가능한 구조로 구축할 계획이다. 나아가 외부 공사비 산정 시스템 및 클라우드 기반 BIM 플랫폼과의 연계를 통해 대규모 설비 시스템의 자동 수량관리 및 의사결정 지원 시스템으로 확장하고자 한다.