A / BIM INFORMATION QUALITY

BIM Information Quality

Overview#

한 건물의 두 IFC를 비교할 때, 무엇을 같은 객체로 보고 어떤 차이를 셀 것인가. 그리고 벽의 부피를 읽을 때 개구부는 어디에서 공제되는가. 두 질문을 원본 자료로 따라간다.

GlobalId는 IFC 객체의 전역 식별자다. Gross(총수량)는 공제 전 수량, Net(순수량)은 공제 후 수량이다. 여기서는 부피 V의 단위를 m³, 측면적 A의 단위를 m²로 쓴다.

Concept#

Identity → attributes → interpretation

RWTH DigitalHub의 건축 모델 v1에는 IfcElement가 968개, v2에는 957개 있다. 이 범위에는 벽·문과 함께 빈 공간을 나타내는 IfcOpeningElement도 들어간다. 두 수의 차이만 보면 어떤 객체가 빠지거나 새로 들어왔는지 알 수 없다.

GlobalId로 대응시키면 849개가 공통이고 v1에만 119개, v2에만 108개가 있다. 같은 식별자는 비교할 대응점이 된다. 속성 묶음은 그 대응점의 정보가 어떻게 달라졌는지 설명한다. IFC 파일 안의 #번호는 파일별 참조 번호이므로 비교에서 제외한다.

N₁ = |S| + |R| = 849 + 119 = 968N₂ = |S| + |A| = 849 + 108 = 957

v1에만 있는 119개는 개구부 112개·문 6개·슬래브 1개이고, v2에만 있는 108개는 모두 개구부다. 먼저 객체 목록에서 사라진 문과 슬래브를 고르고, 개구부 표시를 껐다 켜서 건물에서 이 차이가 나타나는 위치를 본다.

What does a property difference count?

공통 객체마다 타입 상속을 포함한 속성·수량 묶음을 사전으로 정리하고 id 키를 재귀적으로 지운다. 이 비교에서는 값의 변경, 속성의 추가·삭제, 묶음 이름의 변경을 모두 차이로 센다. 빈 문자열, 값 없음(null), 속성 부재는 구별한다.

속성 묶음이 다른 객체는 802개지만, 두 버전에 모두 있는 속성의 값이 바뀐 객체는 148개다. v2가 IFC4 Reference View로 다시 내보내지면서 수량(Qto_*)과 Revit 매개변수 묶음(ID-Daten, Sonstige, Abhängigkeiten, Abmessungen 등)이 훨씬 많이 적혔다. v2에만 34,696건, v1에만 값 있는 속성 336건, 공통 속성의 값 변경 148건이다.

속성 묶음 요약의 해시는 묶음 전체를 정규화한 뒤 계산한 값이다. 이름이 같은 묶음의 해시가 같으면 그 묶음의 비교 값이 같다는 뜻이다. 묶음이 한 버전에만 나타나면 값이 새로 기록되었거나 출력 범위가 달라졌다는 근거로 읽는다.

값 변경 148건은 서로 다른 객체 148개에서 발생했다. IfcMember 72개와 IfcPlate 25개의 IsExternal은 true→false, IfcWall 46개의 ThermalTransmittance는 0.333333333333333→5.0 W/(m²·K), IfcMember 5개의 Slope는 0→90°다. 주황은 기본 보기에서 이 객체들을 가리킨다. 이 속성 값만으로 형상 변경이나 성능 개선을 확정하지 않는다.

Gross → deduction → Net

BIM Whale SimpleWall은 길이를 mm, 면적을 m², 부피를 m³로 선언한다. 길이 숫자는 0.001을 곱해 m로 변환하고, 원본 NetVolume과 NetSideArea는 이미 m³·m² 단위이므로 그대로 읽는다. 수량마다 연결된 단위를 먼저 확인하는 것이 계산의 출발점이다.

벽의 길이·높이·두께는 4000·4000·200 mm다. 전체 직육면체의 부피는 4 × 4 × 0.2 = 3.2 m³로 계산된다. 원본 BaseQuantities의 순부피는 2.809478 m³, 순측면적은 14.04739 m²다.

Vg = L H t = 4 × 4 × 0.2 = 3.2 m³ΔV = (L H − An)t = (16 − 14.04739) × 0.2ΔV = 0.390522 m³ = Vg − Vn

buildingSMART는 NetVolume을 개구부를 빼고 접합 형상을 고려한 벽 부피로 정의한다. 이 SimpleWall에서는 총−순 부피가 측면 공제 면적×일정 두께와 일치한다. 따라서 서로 다른 원본 수량 두 개와 치수 계산을 독립적인 경로로 대조할 수 있다.

Hands-on#

체험 1은 맨 위의 개정 비교 장면이다. 비교 기준 세 단계를 바꾸면서 802→148→148과 객체별 필드 차이를 함께 본다. 같은 GlobalId 집합과 원본을 고정하고 속성의 존재 차이와 공통 속성 값의 변경을 구분한다. 장면이나 목록에서 객체를 골라 실제 v1·v2 값을 확인한다.

↑ 개정 비교 장면으로

HANDS-ON 02 / SIMPLEWALL

개구부를 빼면 벽 수량은 얼마나 달라지는가

같은 벽의 길이·높이·두께와 원본 수량을 고정한다. 개구부 영역을 직접 누르거나 아래 공제 스위치를 바꾼다.

SimpleWall quantity diagram전체 벽과 개구부 공제의 부피 관계. 개구부를 누르면 공제를 바꾼다.4 m4 m0.2 m− 0.390522 m³SimpleWall

수량 관계 도해 · 개구부 위치·모양은 도식화했다.

LENGTHUNIT = MILLI METRE (mm)
AREAUNIT = SQUARE_METRE (m²)
VOLUMEUNIT = CUBIC_METRE (m³)
수량 항목계산·원본m³
Gross4 × 4 × 0.2—
적용한 공제——
선택한 수량——

출처: André Wisén · BIM Whale IFC Samples · SimpleWall · MIT. Gross는 원본 치수에서 계산하고 Net은 BaseQuantities에서 읽었다. MIT

공제를 끄면 선택한 수량은 3.2 m³, 켜면 2.809478 m³다. 순측면적 14.04739 m²와 총측면적 16 m²의 차이를 두께 0.2 m에 곱하면 같은 공제 부피가 나온다. 개구부 공제 여부를 바꾸어도 벽의 치수와 원본 수량은 고정되어 있다.

Summary#

  • 식별자 집합으로 사라짐·추가를 나눈 뒤, 공통 객체의 정보를 비교한다.
  • 속성 묶음 차이 802개와 기존 값 변경 148개를 구분한다. 설계 의미 속성만 골라도 해당 변경이 모두 포함되어 148개다.
  • 단위 선언은 길이·면적·부피별로 읽는다. SimpleWall의 총−순 부피는 0.390522 m³다.
  • 같은 두 수량을 치수식과 면적×두께식으로 대조하면 계산 경로를 검증할 수 있다.
적용 범위

개정 장면은 속성·수량 묶음 비교이며 형상·배치·재료 관계 전체의 동등성은 별도 검사가 필요하다. 개구부 ID 교체의 원인과 실제 설계 변경 전체는 두 IFC만으로 확정할 수 없다. 일정 두께 벽의 면적×두께 대조는 이 SimpleWall에 적용하며, 다른 접합·가변 두께 형상은 해당 수량의 정의로 다시 계산한다.

Notation#

기호뜻단위
N₁, N₂v1·v2 요소 수—
S, R, A공통·사라짐·추가 식별자 집합—
L, H, t벽 길이·높이·두께m
Vg, Vn총부피·순부피m³
An순측면적m²
ΔV공제 부피 Vg − Vnm³

References#

  1. RWTH Aachen University — E3D (2020–2023). DigitalHub, ARC v1 / v2. MIT. License.
  2. Wisén, A. (2020). BIM Whale IFC Samples, SimpleWall. MIT. License.
  3. buildingSMART. Qto_WallBaseQuantities — NetVolume. IFC 4.3.
  4. IfcOpenShell 0.9.0.post1. get_psets API.

이 탭의 수치는 내려받은 IFC 원문과 치수 계산에서 얻었다. 원본 전체 경로·SHA-256·비교 기준·변환 설정은 근거 장부와 기계 판독 장부에서 확인할 수 있다.

Evidence ledger · audit.json · convert_ifc.py

이 페이지의 체험은 원리를 보이기 위해 단순화한 모델이다.