PROGRAMMING
IfcOpenShell로 IFC에서 물량 뽑아내기 - 수량 정보 추출과 CSV 내보내기
2026-08-03 15:57:46 | 아키포털

IFC 파일에는 형상뿐 아니라 수량 정보가 함께 담긴다. IfcOpenShell로 이것을 읽어 물량표를 만들 수 있다. ifcopenshell.open으로 파일을 열고 by_type으로 원하는 종류의 요소를 가져오는 것이 시작이다. 벽이면 IfcWall, 슬래브면 IfcSlab이다. 각 요소의 수량은 IsDefinedBy 관계를 따라가 IfcElementQuantity에 들어 있다. 그 안에 IfcQuantityLength, IfcQuantityArea, IfcQuantityVolume, IfcQuantityWeight, IfcQuantityCount, IfcQuantityTime 6가지 항목이 정의돼 있어 길이와 면적, 부피 같은 값을 꺼낼 수 있다. 속성 집합은 util.element.get_psets 헬퍼를 쓰면 한 번에 사전 형태로 받을 수 있어 편하다. 여기에 파이썬 기본 csv 모듈로 내보내면 엑셀에서 바로 열리는 물량표가 된다. 상용 소프트웨어 없이 파일만으로 검증할 수 있다는 점이 장점이다.
■ 눈여겨볼 것
IFC의 수량 정보는 항상 들어 있는 것이 아니다. 내보내는 쪽 설정에서 기본 수량 내보내기를 켜지 않으면 IfcElementQuantity 자체가 비어 있고, 그러면 아무리 코드를 잘 짜도 읽을 것이 없다. 물량 검증을 하려면 모델을 받기 전에 내보내기 설정을 먼저 합의해야 한다는 뜻이다. 또 하나, IFC의 수량은 원본 소프트웨어가 계산한 값을 그대로 옮긴 것이라 산출 기준이 서로 다를 수 있다. 개구부를 뺀 면적인지 아닌지 같은 것은 파일을 열어 확인해야지 표준이 보장해 주지 않는다.
■ 이런 분께 도움이 됩니다
- BIM 물량 산출 담당자 — 상용 툴 없이 받은 모델의 수량을 교차 검증할 수 있다
- 파이썬을 쓰는 건설 엔지니어 — IFC는 파이썬으로 다루기 가장 쉬운 건설 데이터 포맷이다
- 발주처 검수 담당자 — 납품된 IFC가 요구한 정보를 실제로 담고 있는지 확인하는 수단이 된다
- 건축 전공 대학원생 — 개방형 BIM 연구에서 데이터를 다루는 기본 도구이고, 상용 라이선스 없이 대량의 모델을 분석할 수 있어 연구 재현성 측면에서도 유리하다
■ 참고
요소 수가 많은 모델에서 by_type을 여러 번 호출하면 느려진다. 한 번 읽어 메모리에 담아 두고 반복 처리하는 편이 훨씬 빠르다.
참고 자료: IfcOpenShell · 본문과 이미지는 아키포털에서 직접 작성·제작했습니다.







