이 페이지에서는 데이터스미스에서 IFC(Industry Foundation Classes) 파일의 씬을 언리얼 에디터로 임포트하는 방법에 대해 살펴봅니다. 데이터스미스 개요 및 데이터스미스 임포트 프로세스 페이지에서 살펴본 기본 프로세스를 따르지만 IFC에만 해당되는 일부 특수한 이동 행동을 추가합니다. 데이터스미스를 사용하여 IFC 씬을 언리얼 에디터로 임포트하려는 경우, 이 페이지는 씬이 이동되는 방식과 언리얼 에디터에서 해당 결과물을 사용하여 작업하는 방법을 이해하는 데 도움이 될 수 있습니다.


IFC 워크플로
데이터스미스는 IFC에 다이렉트(Direct) 워크플로를 사용합니다. 데이터스미스를 사용하여 언리얼 엔진으로 IFC 파일의 콘텐츠를 가져오려면 다음 단계를 따릅니다.
-
.ifc
파일을 저장합니다. -
아직 설치하지 않은 경우, 프로젝트에서 임포터(Importers) > 데이터스미스 IFC 임포터(Datasmith IFC Importer) 플러그인을 활성화합니다.
-
언리얼 에디터 툴바에 있는 데이터스미스 IFC 임포터를 사용하여
.ifc
파일을 임포트합니다. 자세한 내용은 언리얼 엔진에 데이터스미스 콘텐츠 임포트하기 페이지를 참고하세요.
데이터스미스 워크플로의 다른 타입에 대해서는 데이터스미스 지원 소프트웨어 및 파일 타입 페이지를 참고하세요.
지원되는 IFC 버전
데이터스미스는 현재 IFC2x3 포맷만 지원합니다.
IFC 포맷 및 사양에 대한 자세한 내용은 buildingSMART International 기술 사이트 페이지를 참고하세요.
씬 계층구조
데이터스미스는 IFC 씬에 있는 각 오브젝트에 대해 액터를 생성합니다. 또한 각 액터에 오브젝트의 IFC 타입 앞에 해당 오브젝트와 일치하는 이름을 지정합니다. 데이터스미스 씬은 이러한 액터를 부모-자손 관계의 계층구조로 배열하면서 현장은 건물을 포함하고, 건물은 층을 포함하고, 층은 벽, 문, 공간 등을 포함하는 방식으로 IFC 오브젝트의 구성과 매우 유사하도록 배열합니다.
둘 사이에는 몇 가지 차이점이 있다는 것을 알 수 있습니다.
-
오른쪽 언리얼 에디터의 월드 아웃라이너(World Outliner) 에서는 계층구조의 각 레벨 액터가 항상 알파벳 순서로 정렬되어 있습니다. 이로 인해 언리얼 엔진과 다른 IFC 뷰 및 편집 애플리케이션 간에 형제가 나열되는 측면에서는 시각적인 차이가 생길 수 있지만 부모-자식 관계에는 변함이 없습니다.
-
IFC 파일은 동일한 이름의 오브젝트를 여러 개 가질 수 있지만 언리얼 엔진 레벨의 각 액터는 고유한 이름을 가져야 합니다. 데이터스미스는 동일한 이름을 공유하는 오브젝트를 구분하기 위해 서로 다른 숫자로 된 접미사를 붙입니다.
-
데이터스미스는 액터 이름에 영숫자, 언더스코어, 하이픈만 허용합니다. 다른 문자는 모두 언더스코어로 변경됩니다.
이러한 사소한 시각적 차이는 IFC 오브젝트에 할당된 고유 ID 또는 다른 데이터에 영향을 미치지 않습니다. 이러한 값은 데이터스미스에 의해 각 액터별로 할당된 메타데이터에 보존됩니다. 이러한 메타데이터 값을 활용하면 언리얼 엔진에 모범 사례를 따르는 IFC 워크플로를 생성할 수 있습니다.
라이트 및 카메라
IFC 2x3 사양에서 라이트 이미터 또는 카메라를 정의하는 방식은 언리얼 엔진 또는 다른 3D 디자인 및 시각화 툴과 다릅니다.
-
IFC의 라이트는 순전히 빌딩 엘리먼트로 취급되며 ifcLamp 오브젝트라고 합니다. 이러한 오브젝트에는 라이트 반경, 강도, 컬러 등의 리얼타임 렌더링에 필요한 프로퍼티 측정 값이 갖춰져 있지 않습니다. 데이터스미스는 각 ifcLamp 엘리먼트를 데이터스미스 씬 내의 액터로 임포트하며, IFC 파일에서 다른 모든 오브젝트 타입을 임포트하는 방식과 동일합니다. 하지만 데이터스미스는 오브젝트에 포인트 라이트(Point Light), 스포트 라이트(Spot Light), 렉트 에어리어 라이트(Rectangular Area Light) 같은 라이트 소스를 전혀 생성하지 않습니다
데이터스미스가 임포트하는 다른 모든 IFC 오브젝트와 마찬가지로, 각 ifcLamp 오브젝트별로 할당된 프로퍼티는 언리얼 에디터와 언리얼 엔진의 런타임 모두에서 메타데이터로 사용될 수 있습니다. 이러한 메타데이터 프로퍼티는 블루프린트 또는 Python을 사용하여 액세스 및 해석할 수 있으며, 그 값에 따라 자체 언리얼 엔진 라이트 소스를 자동으로 생성할 수 있습니다.
-
카메라는 IFC 사양의 일부가 전혀 아니며, IFC 파일도 씬의 뷰포인트를 저장하지 못합니다. 따라서 데이터스미스는 데이터스미스 씬에 어떠한 카메라도 생성할 수 없습니다.
레이어
데이터스미스는 씬의 IFC 오브젝트 타입별로 언리얼 엔진 레벨에 새 레이어를 생성합니다. 그리고 각 레이어에 해당 타입의 객체를 나타내는 액터를 모두 할당합니다. 이러한 레이어를 사용하면 주어진 타입의 모든 오브젝트를 빠르게 표시하고, 숨기고, 선택할 수 있습니다.
예를 들어 다음 이미지에서는 ifcWindow 및 ifcBeam 엘리먼트만 표시됩니다.
머티리얼
데이터스미스는 IFC 씬에서 찾은 표면 머티리얼에 대해 언리얼 엔진에 동일한 이름으로 머티리얼 에셋(Material Asset)을 생성하고, 해당 머티리얼을 데이터스미스 씬 에셋 옆의 Materials 폴더에 저장합니다. 데이터스미스는 이러한 머티리얼 에셋을 스태틱 메시 에셋(Static Mesh Asset)에 할당하여 표면에 셰이딩을 생성합니다.
-
Materials 폴더의 각 머티리얼은 IFC 파일에 설정된 프로퍼티(컬러 값, 투명 값, 스페큘러 컬러 등)를 노출하는 머티리얼 인스턴스(Material Instance)입니다. 이러한 머티리얼 에셋을 더블클릭하면 '머티리얼 인스턴스 에디터(Material Instance Editor)'에서 열립니다.
디테일(Details) 패널에 노출된 프로퍼티를 변경하여 머티리얼이 표면에 적용되었을 때 표시되는 방식을 수정할 수도 있습니다. 예를 들어 위에 표시된 머티리얼은 베이스 컬러 및 투명에 대한 프로퍼티를 노출합니다.
데이터스미스와 함께 작동하는 다른 파일 포맷 및 디자인 애플리케이션과 달리, IFC는 표면 프로퍼티의 물리적 특징에 대한 세부적인 제어 기능을 제공하지 않습니다. 데이터스미스는 IFC 파일에서 머티리얼을 이동할 때 원본 프로퍼티를 최대한 그대로 보존합니다. 하지만 그 결과물은 보통 사실적이지 않거나 언리얼 엔진의 물리 기반 렌더링과 잘 맞지 않습니다. 보통 데이터스미스에서 생성하여 스태틱 메시 에셋에 할당하는 디폴트 머티리얼은 교체하는 것이 좋습니다. 언리얼 엔진에서 직접 물리 기반 머티리얼을 작성할 수도 있고 에픽게임즈 런처의 '마켓플레이스(Marketplace)' 탭 같은 다른 소스에서 물리 기반 머티리얼을 임포트할 수도 있습니다.
-
데이터스미스는 Materials/Master 폴더에 부모 머티리얼 세트도 생성합니다. 이들 각각은 Materials' 폴더에 있는 최소 하나 이상의 머티리얼 에셋에 대한 부모입니다. 머티리얼 그래프를 보다 세부적으로 제어하여 표면의 표시 방식을 정의하거나, 추가적인 파라미터를 자손 인스턴스에 노출하거나, 노출된 파라미터가 렌더링 동안 레퍼런스되는 방식을 변경하고 싶은 경우에는 이러한 부모 머티리얼을 편집할 수 있습니다.
부모 머티리얼을 변경할 경우 해당 부모에서 상속을 받는 모든 머티리얼 인스턴스도 자동으로 변경된다는 점에 유의해 주세요. 보통 부모 머티리얼을 수정하기 전에 먼저 복제하고, 복제본을 변경한 다음에 최종적으로 특정 머티리얼 인스턴스가 새 복제본을 부모로 사용하도록 업데이트하는 것이 좋습니다. 자세한 내용은 데이터스미스 마스터 머티리얼 수정 페이지를 참고하세요.
메타데이터
데이터스미스는 IFC 파일에서 임포트한 각 오브젝트의 프로퍼티를 모두 기록하며, 해당 프로퍼티 값을 데이터스미스 메타데이터의 형태로 자신이 생성한 액터에 저장하여 언리얼 엔진에서 해당 오브젝트를 표현합니다. 이 메타데이터는 언리얼 에디터 또는 언리얼 엔진의 런타임에 액세스할 수 있습니다.
데이터스미스가 IFC 파일에서 프로퍼티를 변환하는 방식
-
IFC에서는 프로퍼티를 그룹으로 정리할 수 있습니다. 예를 들어 위 이미지는 PSet_Revit_Mechanical, PSet_Revit_Dimensions, PSet_Revit_Identity Data 등의 그룹을 보여줍니다. 하지만 언리얼 엔진의 데이터스미스 메타데이터는 항상 키와 값을 평평한 목록으로 저장합니다. IFC 프로퍼티에 위와 같이 그룹이 있는 경우, 데이터스미스는 계층구조를 평탄화시켜 모든 그룹의 메타데이터 키 모두를 하나의 일반 목록에 넣습니다. 그룹 이름 자체는 버려집니다.
-
데이터스미스는 메타데이터 키 이름에 영숫자, 하이픈, 밑줄만 허용합니다. 사용자 데이터 이름에 다른 글자가 포함된 경우, 해당 글자는 밑줄로 자동 변환됩니다. 예를 들어 위 이미지에서 픽스처 유닛(Fixture Units) 프로퍼티는 데이터스미스 메타데이터의 Fixture_Units 로 변환됩니다.
메타데이터 값의 모든 특수 문자는 보존됩니다.
추가 메타데이터 태그
또한 데이터스미스는 각 오브젝트 관련 추가 기술 메타데이터를 자신이 생성한 액터에 태그로 저장하여 언리얼 엔진에서 해당 오브젝트를 표현합니다. IFC 오브젝트의 경우, 데이터스미스는 다음 이미지에서와 같이 글로벌 범위에서 고유한 ID 및 액터의 IFC 타입을 저장합니다.

자세한 내용은 데이터스미스 임포트 프로세스 페이지를 참고하세요.
크레딧
-
IFC 건물 이미지 제공: https://github.com/buildingSMART/Sample-Test-Files/tree/master/IFC%202x3/Schependomlaan
© original owners.
이 저작물은 Creative Commons Attribution 4.0 International License에 따라 사용이 허가되었습니다. 자세한 내용 및 전체 라이선스 텍스트는 http://creativecommons.org/licenses/by/4.0/ 링크에서 확인할 수 있습니다.
-
기타 IFC 계층구조 이미지의 출처는 Project 3: Clinic 으로, National Institute of Building Sciences에서 이용할 수 있습니다.
-
IFC 화면 캡처는 RDF IFC Viewer 애플리케이션에서 촬영한 것입니다.