Using Datasmith with IFC Files

Describes special considerations that apply only when you use Datasmith to bring scenes from IFC files into the Unreal Editor.

Choose your operating system:

Windows

macOS

Linux

This page describes how Datasmith imports scenes from Industry Foundation Classes (IFC) files into Unreal Editor. It follows the basic process outlined in the Datasmith Overview and About the Datasmith Import Process , but adds some special translation behavior that is specific to IFC. If you're planning to use Datasmith to import IFC scenes into Unreal Editor, reading this page can help you understand how your scene is translated, and how you can work with the results in Unreal Editor.

IFC Viewer

Unreal Engine

IFC Workflow

Datasmith uses a Direct workflow for IFC. This means that to get the content of an IFC file into Unreal using Datasmith, you need to:

  1. Save your .ifc file.

  2. Enable the Importers > Datasmith IFC Importer Plugin for your Project, if it's not already installed.

  3. Use the Datasmith IFC importer available in the Toolbar of the Unreal Editor to import your .ifc file. See Importing Datasmith Content into Unreal Engine 4 .

To read more about other types of Datasmith workflows, see Datasmith Supported Software and File Types .

Supported IFC versions

Datasmith currently supports only the IFC2x3 format.

For details about IFC formats and specifications, see the buildingSMART International technical site .

Scene Hierarchy

Datasmith creates an Actor for each object in your IFC scene. It gives each Actor a name that matches its corresponding object, prefaced by the object's IFC type. The Datasmith Scene arranges these Actors in a hierarchy of parent-child relationships that closely matches the way your IFC objects are organized: sites contain buildings, buildings contain storeys, storeys contain walls, doors, spaces, and so on.

You may notice a few differences:

  • In the Unreal Editor World Outliner , shown above on the right, the Actors at each level of the hierarchy are always ordered alphabetically. This may cause visual differences in ordering siblings between Unreal Engine and other IFC viewing and editing applications, but the parent-child relationships remain unchanged.

  • An IFC file can have multiple objects with the same name, but each Actor in the Unreal Engine Level needs to have a unique name. Datasmith appends a different numeric suffix to distinguish between objects that share the same name.

  • Datasmith only allows alphanumeric characters, underscores, and hyphens in Actor names. All other characters are changed to underscores.

These minor visual differences do not affect unique IDs or other data assigned to the IFC objects. These values are preserved by Datasmith in metadata assigned to each Actor. You can create best-practice IFC workflows in Unreal Engine by leveraging these metadata values.

Lights and Cameras

The IFC 2x3 specification does not define light emitters or cameras in the same way as Unreal Engine or other 3D design and visualization tools.

  • Lights in IFC are treated purely as building elements, called ifcLamp objects. These objects do not have measurements of the properties required for realtime rendering, such as illumination radii, intensity, color, and so on. Datasmith imports each ifcLamp element as an Actor in the Datasmith Scene, the same way it imports all other types of objects from the IFC file. However, Datasmith does not create any light sources for them, like Point Lights , Spot Lights , Rect Lights , and so on.

    As with all other IFC objects that Datasmith imports, the properties assigned to each ifcLamp object in the IFC file are available as metadata —both in the Unreal Editor, and at runtime in the Unreal Engine. You can use Blueprint or Python to access and interpret these metadata properties, and to create your own Unreal Engine light sources automatically based on their values.

  • Cameras are not part of the IFC specification at all, nor can an IFC file save viewpoints on the scene. Therefore, Datasmith does not create any cameras in the Datasmith Scene.

Layers

Datasmith creates a new Layer in the Unreal Engine Level for each different type of IFC object in the scene. It assigns to each Layer all the Actors that represent objects of the corresponding type. You can use these Layers to quickly show, hide, and select all objects of any given type.

For example, in the following image, only the ifcWindow and ifcBeam elements are visible.

Materials

For each different surface material that Datasmith finds in your IFC scene, it creates a Material Asset in Unreal with the same name, and places that Material in the Materials folder next to your Datasmith Scene Asset. Datasmith assigns these Material Assets to the Static Mesh Assets it creates in order to shade their surfaces.

  • Each Material in the Materials folder is a Material Instance that exposes properties set in the IFC file: color values, transparency values, specular colors, and so on. Double-click one of these Material Assets to open it in the Material Instance Editor:

    You can change the exposed properties in the Details panel to modify the way the Material looks when applied to a surface. For example, the Material shown above exposes properties for its base color and transparency.

    Unlike some other file formats and design applications Datasmith works with, IFC does not offer deep controls over the physical characteristics of surface properties. When Datasmith translates Materials from an IFC file, it preserves your original properties as faithfully as possible. However, the results are not typically lifelike or well-suited to the physically based rendering of the Unreal Engine. Typically, you'll want to replace the default Materials that Datasmith creates and assigns to your Static Mesh Assets. You can author your own physically based Materials in Unreal Engine, or import physically based Materials from other sources—for example, from the Marketplace tab of the Epic Games Launcher.

  • Datasmith also creates a set of parent Materials in the Materials/Master folder. Each of these is the parent of at least one of the Material Assets in the Materials folder. You can edit these parent Materials if you want greater control over the Material graphs that define how each surface appears, to expose additional parameters to child instances, or to change the way the exposed parameters are taken into account during rendering.

    Note that changing a parent Material also automatically changes all Material Instances that inherit from that parent. It's usually a good idea to duplicate a parent Material before you modify it, make your changes to the duplicate, then update specific Material Instances to use your new duplicate as their parent. For details, see Modifying a Datasmith Master Material .

Metadata

Datasmith records all the properties of each object it imports from the IFC file, and it saves those property values as Datasmith Metadata on the Actor it creates to represent that object in the Unreal Engine. You can access this metadata in the Unreal Editor or at runtime in the Unreal Engine.

For more information on how Datasmith converts the data and how you can access the metadata after import, see Using Datasmith Metadata .

Datasmith also stores additional technical metadata about each object as Tags on the Actor that it creates to represent the object in the Unreal Engine. For IFC objects, Datasmith saves a globally unique ID and the Actor's IFC type, as shown in the following image:

Actor Tags for IFC objects

For more information, see also About the Import Process .

Credits

Help shape the future of Unreal Engine documentation! Tell us how we're doing so we can serve you better.
Take our survey
Dismiss