IFC (Industry Foundation Classes)
건설 및 건축 분야에서 널리 사용되는 개방형 데이터 형식으로, 주로 BIM(Building Information Modeling) 데이터의 저장과 교환을 위해 사용된다.
IFC는 건물과 인프라 프로젝트에 대한 구조, 공간 시스템 및 구성 요소의 정보를 디지털 방식으로 표현하기 위한 표준이다. 이는 기술적 메타데이터와 참조 메타데이터의 성격을 가진 표준 데이터 형식이다.
- 표준화: IFC는 ISO 16739에 의해 표준으로 지정되었고, 다양한 BIM 소프트웨어 간의 상호운용성을 지원함
- 개방형 데이터 형식: 특정 소프트웨어에 종속되지 않고, 여러 플랫폼 간 데이터 교환이 가능함
- 객체 지향 구조: IFC는 건물의 요소를 객체로 정의하며, 각각의 객체는 속성과 관계를 갖고 있음
IFC 데이터의 주요 내용
- 건축 요소: 벽, 바닥, 문, 창문 등 건물의 물리적 요소.
- 공간 및 존 정보: 공간(방), 층, 구역(zone) 등의 논리적 구분.
- 시스템 정보: HVAC, 전기 시스템, 배관 등 건물의 기계적/전기적 시스템.
- 재료 및 속성: 사용된 재료, 구조적 특성, 단열 성능 등의 속성 데이터.
- 프로젝트 정보: 프로젝트명, 설계 단계, 프로젝트 팀 등 메타데이터.
파일 형식
IFC 파일은 주로 .ifc
확장자를 가지며, 다음과 같은 형식으로 저장될 수 있습니다:
- IFC-SPF: 텍스트 기반의 Step Physical File 형식 (가장 일반적).
- IFC-XML: XML로 표현된 IFC 데이터.
- IFC-ZIP: 압축된 IFC 데이터.
해당 데이터에 기하학적, 파라매트릭한 요소들로 건물을 표현할 수 있다. 어떤 entity가 존재하는 지는 버전에 따라 다른 것으로 파악하였다.
객체 기반(Object-based) 데이터 모델로 건축 요소(벼그 창문 문 등), 공간, 관계 등을 객체로 정의하며, 객체 관의 관계(예: 포함, 연결, 속성)는 명확히 표현한다. RDB(관계형 데이터베이스, Relational database)의 경우에 데이터를 테이블 형태로 저장하며 ,각 테이블은 열(속성)과 행(객체)을 가집니다. IFC 객체와 속성 정보를 RDB 테이블 구조에 매핑할 수 있다.
즉, IFC는 객체 기반 데이터 모델로, ODB와 자연스럽게 호환되지만, RDB와도 매핑하여 활용할 수 있다.
파일 내부
ISO-10303-21
와 같은 스키마 정보가 적힌 헤더가 있고, #1 로 시작하는 부분부터 건물 데이터 모델 정보이다. 3D 데이터이다.
사전 정의된 유형, 속성, 외부 참조 (Predefined types, properties & external references)
출처: https://aecmag.com/collaboration/ifc-what-is-it-and-why-is-it-needed/
1. 사전 정의 유형 (Predefined Types)
- 사전 정의 유형은 엔티티를 보다 구체적으로 설명하기 위해 사용된다. 예를 들어,
IfcSanitaryTerminalType
의 경우, TOILETPAN, SINK, WASHHANDBASIN과 같은 사전 정의 유형이 있습니다. 이들은 대문자로 표기되며, 선택 목록(pick-list)에서 선택할 수 있다.
- USERDEFINED: 사전 정의 유형이 적절하지 않은 경우에만 사용됩니다.
- 이 경우에도 사전 정의 유형으로 USERDEFINED를 지정해야 하며,
ElementType
또는 ObjectType
속성을 통해 추가적인 정의를 입력해야 한다.
2. 속성 (Properties)
- IFC는 객체에 속성을 연결할 수 있도록 지원한다.
- 속성을 연결하려면 먼저 속성 세트(Property Set)에 속성을 할당해야 한다.
- 속성 세트는 관련 속성들을 그룹화한 컨테이너로, IFC 스키마에서는
Pset_
접두사를 사용해 표현된다.
- 사용자 정의 속성(Custom Properties)도 사용자 정의 속성 세트를 통해 추가할 수 있다. 하지만, 먼저 해당 속성이 이미 산업 사전(Dictionary)이나 용어집(Lexicon)에 존재하지 않는지 확인해야 한다.
3. 외부 참조 (External References)
- IFC는 모든 정보가 모델 내에 포함되지 않을 수 있음을 인식하고, 외부 참조 정보를 IFC 객체에 연결할 수 있도록 지원한다.
- 분류(Classification): Uniclass와 같은 분류 시스템을 객체에 연결.
- 라이브러리(Libraries): 제조업체의 제품 데이터와 같은 외부 데이터베이스의 정보를 객체에 연결.
- 문서(Documents): 예를 들어, 보일러에 커미셔닝 인증서를 연결.
폴리곤 좌표
IFC 데이터는 객체의 기하학적 표현을 정의하기 위해 좌표 기반 지오메트리를 사용할 수 있다. 객체의 형태는 속성 데이터(Property Sets) 또는 고차원적인 매개변수로만 정의될 수 있다.
- Boundary Representation (BRep): IFC 객체의 외형을 다각형으로 정의.
- Swept Solid: 기본 형상(예: 프로파일)을 축을 따라 이동하거나 회전하여 형성된 지오메트리.
- Faceted BRep: 다각형(폴리곤) 면들로 정의된 3D 형상.
- IfcCartesianPoint: 좌표를 표현하는 기본 엔티티로, 폴리곤의 꼭짓점을 정의.
- IfcPolyline 또는 IfcPolygonalBoundedHalfSpace: 폴리곤 경계 데이터를 정의하는 데 사용.
- IfcFace: 3D 객체의 면 정보를 정의하며, 다각형 지오메트리로 표현 가능.
폴리곤 좌표 추출 및 활용
폴리곤 좌표가 IFC 데이터에 포함된 경우, 이를 활용하여 다음을 수행할 수 있다.
- 시각화: IFC 데이터를 3D 렌더링 소프트웨어로 불러와 객체의 형상 확인.
- 분석: 객체의 경계나 면적을 계산.
- 변환: 폴리곤 데이터를 다른 형식(예: GeoJSON, DXF)으로 변환.
폴리곤 좌표가 포함되지 않은 경우, 매개변수와 관계 데이터를 기반으로 지오메트리를 계산하거나 생성해야 할 수 있다.