IFC 4.3, ISO 16739-1:2024로 확정 — 도로·철도·교량까지 넓어진 개방형 BIM

IFC 4.3, ISO 16739-1:2024로 확정 — 도로·철도·교량까지 넓어진 개방형 BIM

개방형 BIM(openBIM)의 표준 교환 포맷인 IFC(Industry Foundation Classes)의 4.3 버전이 2024년 국제표준 ISO 16739-1:2024로 확정 발행됐다. 정식 명칭은 ‘Industry Foundation Classes (IFC) for data sharing in the construction and facility management industries — Part 1: Data schema’다. 이번 판의 가장 큰 의미는 그동안 건축물 위주였던 IFC의 적용 범위가 도로·철도·교량·수로·항만 같은 토목 인프라 영역까지 넓어졌다는 데 있다. 특정 소프트웨어에 종속되지 않고 서로 다른 도구 사이에서 모델을 주고받는 개방형 BIM의 무대가 건물을 넘어 사회기반시설 전체로 확장된 것이다. ■ IFC와 개방형 BIM이란 IFC는 buildingSMART International이 관리하는 중립(vendor-neutral) 데이터 스키마다. A사 설계도구에서 만든 모델을…
buildingSMART IDS 1.0 — BIM 정보요구사항을 기계가 검증하는 표준

buildingSMART IDS 1.0 — BIM 정보요구사항을 기계가 검증하는 표준

발주처가 요구한 속성이 BIM 모델에 제대로 들어갔는지 확인하는 일은 지금까지 사람이 눈으로 훑거나 회사마다 다른 체크 스크립트에 기대 왔다. buildingSMART는 ‘요구사항 자체를 기계가 읽고 검증할 수 있는 형식으로 적어 두자’는 취지로 IDS(Information Delivery Specification)를 만들었고, 2024년 6월 1.0이 정식 표준으로 승인됐다. 그 전의 0.9.x 계열은 모두 베타였다. IDS는 ‘IFC 모델이 무엇을 담아야 하는가’라는 정보 요구사항을 서술형 문장이 아니라 컴퓨터가 해석 가능한 규칙으로 표현해, 검수를 자동화하는 것을 목표로 한다. ■ 정보 요구사항을 기계가 검증한다는 것 기존 발주 문서의 요구사항은 ‘모든 외벽에는 내화 성능 속성을 기입할 것’ 같은 자연어 문장이었다. 사람은 이해하지만…
IfcOpenShell로 IFC 파일 파싱하기 — Python으로 요소 조회와 속성 추출

IfcOpenShell로 IFC 파일 파싱하기 — Python으로 요소 조회와 속성 추출

IfcOpenShell은 IFC 파일을 코드로 직접 다루는 오픈소스 파이썬 라이브러리다. Revit이나 ArchiCAD를 띄우지 않고도 요소 조회와 속성 추출이 되므로, 납품 전 물량 검토나 데이터 품질 점검 스크립트를 짜기에 알맞다. 이 글에서는 IFC 스키마가 어떻게 생겼는지 개념을 먼저 잡고, 파일을 열어 요소를 조회하고 속성을 추출한 뒤, 건물의 공간 구조(대지-건물-층-공간)를 순회하는 데까지 실제 코드로 이어간다. ■ IFC 스키마의 뼈대 — IfcProduct와 PropertySet IFC의 거의 모든 물리적 요소는 IfcProduct를 상속한다. 벽(IfcWall), 슬래브(IfcSlab), 문(IfcDoor), 기둥(IfcColumn)이 모두 여기 속한다. 각 요소는 세 가지 축으로 정보를 갖는다. 구분담는 것접근 관계 속성(PropertySet)재질, 방화등급, 외벽 여부 등 비형상 정보IsDefinedBy…
Revit API FilteredElementCollector로 요소 일괄 조회하고 트랜잭션으로 고치기

Revit API FilteredElementCollector로 요소 일괄 조회하고 트랜잭션으로 고치기

Revit API로 무언가를 하려면 거의 항상 첫 단계가 같다. 모델에서 원하는 요소를 골라내는 것이다. 벽만, 특정 레벨의 문만, 배치된 인스턴스만. 이 조회를 담당하는 클래스가 FilteredElementCollector다. 그리고 골라낸 요소의 값을 바꾸려면 반드시 Transaction 안에서 해야 한다. 이 두 가지, "필터로 모으고 트랜잭션으로 고친다"는 패턴은 Revit 플러그인 코드의 8할을 차지한다. 이 글은 컬렉터의 필터 종류와 성능 차이, 그리고 트랜잭션의 시작·커밋·롤백을 실제 C# 코드와 함께 정리한다. ■ FilteredElementCollector의 기본형 컬렉터는 생성자에 Document를 넘기고 필터 메서드를 체인으로 이어 붙이는 방식으로 쓴다. 마지막에 ToElements()나 ToElementIds()로 결과를 뽑는다. // 배치된 벽 인스턴스만 모으기 var walls =…
Dynamo로 Revit 반복작업 자동화하기: 시트 생성과 파라미터 일괄 입력 활용

Dynamo로 Revit 반복작업 자동화하기: 시트 생성과 파라미터 일괄 입력 활용

Revit 프로젝트 후반부에는 도면 시트를 대량으로 만들고, 요소마다 파라미터를 채워 넣는 단순 반복 작업이 몰린다. 시트 200장을 손으로 만들고 제목블록에 번호·이름을 하나씩 입력하는 데 며칠이 걸리기도 한다. Dynamo는 이 과정을 그래프 하나로 자동화한다. 엑셀에 정리된 시트 목록을 읽어 시트를 한꺼번에 생성하고, 지정한 위치에 뷰를 배치하며, 요소 파라미터를 스프레드시트 값으로 일괄 입력할 수 있다. 이 글은 시트 자동 생성 그래프와 파라미터 일괄 입력의 실제 노드 흐름, 그리고 트랜잭션·되돌리기 같은 실무 주의점을 단계별로 정리한다. ■ 준비: 데이터를 엑셀로 먼저 정리한다 자동화의 출발점은 좋은 데이터다. 시트 번호·시트 이름·배치할 뷰 이름을 열로 정리한 엑셀…
Revit 파일 용량 줄이기: Purge Unused와 링크·CAD 정리로 모델 경량화하기

Revit 파일 용량 줄이기: Purge Unused와 링크·CAD 정리로 모델 경량화하기

Revit 프로젝트가 커질수록 파일이 무거워지고, 저장·동기화·뷰 전환이 느려진다. 용량 문제는 단순히 디스크 공간의 문제가 아니라 작업 반응성과 협업 안정성의 문제다. 무거운 파일은 워크셰어링 동기화 시간이 길어지고, 최악의 경우 열다가 손상되기도 한다. 파일 경량화는 한 번의 마법 버튼이 아니라 몇 가지 조치를 순서대로 쌓는 작업이다. 이 글에서는 Purge Unused부터 미사용 패밀리·그룹·재질 정리, CAD 링크·이미지 관리, 워크셰어링 오딧, Audit과 Compact Central File, 뷰 삭제까지, 효과가 큰 순서대로 정리하고 마지막에 실무 체크리스트 표를 둔다. ■ Purge Unused - 가장 먼저, 그리고 세 번 관리(Manage) 탭의 Purge Unused는 어디에도 배치되지 않은 패밀리, 뷰 타입,…
BIM 협업 실무 — IFC로 이종 소프트웨어 간 모델 교환하기

BIM 협업 실무 — IFC로 이종 소프트웨어 간 모델 교환하기

BIM 협업에서 서로 다른 소프트웨어를 쓰는 참여자끼리 모델을 주고받을 때는 IFC(Industry Foundation Classes) 표준 포맷을 사용한다. IFC는 buildingSMART가 관리하는 개방형 표준으로, 특정 프로그램에 종속되지 않고 형상·속성·관계 정보를 함께 담는다. 건축은 Revit, 구조는 Tekla, 협업 검토는 ArchiCAD처럼 도구가 갈라져 있어도, 각자 IFC로 내보내면 하나의 통합 모델(federated model)로 겹쳐 볼 수 있다. 다만 원본의 파라메트릭 편집 기능은 그대로 유지되지 않으므로, IFC는 조율·검토·정보 교환용으로 쓰고 실제 설계 수정은 원본 저작 도구에서 하는 것이 원칙이다. 이 글은 IFC 교환에서 실무자가 반드시 확인해야 할 설정과, 자주 깨지는 항목을 정리한다. ■ 내보내기 전에 정하는 것 —…
Revit 2026의 생성형 설계·API 개선과 AI 자동화 기능

Revit 2026의 생성형 설계·API 개선과 AI 자동화 기능

Revit 2026은 출시 25주년 버전으로, 화려한 신기능보다 실무 생산성을 끌어올리는 자동화·AI·API 안정화에 초점을 맞췄다. 특히 생성형 설계(Generative Design), 반복 작업의 규칙 기반 자동화, 그리고 애드인 개발 환경의 안정성이 함께 개선되면서 BIM 매니저와 개발자가 커스텀 자동화를 더 안전하게 확장할 토대가 넓어졌다. 이 글은 Autodesk가 공개한 내용을 기준으로, 확인된 기능만 정리하고 생성형 설계의 실제 워크플로와 실무 적용 지점을 프로그래밍 관점에서 설명한다. ■ 생성형 설계(Generative Design in Revit)란 생성형 설계는 설계자가 정한 목표·제약·변수에 따라 수많은 설계 대안(outcome)을 자동으로 생성하고 평가하는 기능이다. Revit에 내장된 이 도구는 클라우드 연산을 이용해 사람이 손으로 검토하기 어려운 규모의…
pyRevit로 시작하는 Revit 자동화 스크립팅 입문

pyRevit로 시작하는 Revit 자동화 스크립팅 입문

Revit 자동화를 배우고 싶은데 C#과 비주얼 스튜디오, 그리고 플러그인 빌드·배포까지 넘어야 한다면 진입 문턱이 꽤 높다. pyRevit은 그 문턱을 크게 낮춘다. 파이썬 스크립트를 리본 버튼으로 등록해 클릭 한 번으로 실행하는 오픈소스 확장 도구로, 컴파일도 배포용 설치 파일도 필요 없다. 스크립트 파일을 정해진 폴더 구조에 넣기만 하면 Revit 리본에 버튼이 생긴다. 이 글은 pyRevit의 설치와 확장·번들 구조, 첫 스크립트 작성, 그리고 RevitPythonShell과의 차이와 배포 방법까지 입문에 필요한 뼈대를 정리한다. ■ pyRevit이 잘하는 일 pyRevit은 "입력이 같으면 결과도 같은" 반복 업무에 특히 강하다. 실무에서 흔히 이렇게 쓴다. 뷰·시트 이름을 사무소 표준에 맞게…
Dynamo 비주얼 프로그래밍으로 배우는 BIM 워크플로 자동화

Dynamo 비주얼 프로그래밍으로 배우는 BIM 워크플로 자동화

Dynamo는 Revit에 내장된 노드 기반 비주얼 프로그래밍 환경으로, 코드를 몰라도 반복 작업 자동화·대량 데이터 조작·파라메트릭 형상 생성을 할 수 있다. 노드(작업 단위)와 와이어(데이터 연결)로 네트워크를 구성하고, 필요하면 파이썬 노드로 Revit API 레벨까지 확장한다. 중요한 것은 "무엇을 자동화할 수 있는가"를 먼저 파악하는 일이다. 도구를 배우기 전에 자동화가 잘 맞는 작업 유형을 알면, 어디에 Dynamo를 붙일지 판단이 빨라진다. 이 글은 자동화 가능한 워크플로 유형을 표로 정리하고, 완성한 그래프를 팀에 배포하는 Dynamo Player, 생산성을 끌어올리는 핵심 패키지, 그리고 실전 학습 로드맵을 다룬다. ■ 자동화하기 좋은 워크플로 유형 Dynamo가 특히 효과를 내는 작업은 "규칙이…