Exploring an IFC model#
We’re going to load an existing IFC model and explore some common properties most users will be interested in.
If you don’t have an IFC model available, here’s a small one for your convenience provided by the Institute for Automation and Applied Informatics (IAI) / Karlsruhe Institute of Technology. It’s in German, so you may need to use some creativity when reading the data :)
You can find more sample models online in the OSArch Open Data Directory
Loading a model#
Blender’s interface is divided into three panels. The left Outliner panel shows a tree of geometric objects. The centre main Viewport panel shows 3D geometry. The right Properties panel shows data and relationships.
The Properties panel has tabs to switch between different types of properties.
File > Open IFC Project and browse to your
After loading, you will see the model appear in the Viewport panel.
Take a look at the Project Info subpanel. It shows the loaded filename, as well as the IFC Schema. There are two commonly seen IFC Schema versions: IFC2X3 and IFC4. Checking the IFC Schema is important because it has an impact on what BIM data may be stored. IFC4 is the newer version and it is recommended to use IFC4 models as it has significantly more BIM capabilities compared to IFC2X3.
Blender’s interface is highly customisable. Panels, panel types, colours, sizes, and tabs may be edited to suit your workflow. If you want a Hot Pink theme look no further.
Overview of all objects#
The Outliner panel on the top right shows a hierarchy of all the currently loaded physical Objects in your IFC project. These Objects correlate to what you can see in the Viewport panel.
Every Object in the Outliner represents an IFC Element. These
Objects have a name with the pattern
Class/Name. The class prefix
represents the type of object, and the name is the name of the object. Examples
of classes you will see are
IfcWall. This naming
convention makes it easy to quickly spot types of objects.
Objects are organised in a hierarchy. By default, this hierarchy represents a breakdown of spaces, from large spaces such as a site and a building, down to smaller spaces like building storeys and room spaces. The hierarchy will always begin with an IfcProject object. You can click on the triangle to toggle the hierarchy.
In large projects with deep hierarchies, you can
Shift-LMB click the
triangle to recursively toggle the hierarchy. You can also click and drag the
MMB to pan left and right.
When there are lots of objects, you can type a name in the filter box to quickly identify objects by name or type.
Clicking on an object in the Outliner panel also selects the corresponding
object in the Viewport panel. A good strategy to find objects is to then use
View > Frame Selected to zoom to it in the Viewport.
The Outliner panel is also great for isolating portions of your project. You can include and exclude portions by clicking on the Tick Icon next to collections of objects in the hierarchy.
Let’s isolate a single building storey. Start by disabling the Tick Icon next to the IfcProject collection. This will hide everything in the project. Then navigate through the hierarchy and enable the Tick Icon next to an IfcBuildingStory.
Viewing element classes#
Usually the first thing you’ll want to check is the Class of element that an object represents. The IFC Class is an international classification system provided by IFC. Example IFC Classes are Wall, Slab, and Door. Every IFC element must have a Class.
Classes aren’t just for categorising elements. They also indicate what types of properties and relationships it is allowed to have. For example, a Wall Class can have a fire rating property, but a Grid Class cannot.
There are hundreds of Classes to represent all aspects of our built environment, including non geometric classes like Task, Occupant, and CostItem. However, we’ll focus only on simple physical Classes in this guide. Don’t worry about memorising all the available Classes, you’ll get a feel for them as you explore more.
To view an object’s class, click on an object in the Viewport or Outliner panel, then switch to the Object Information tab in the Properties panel. You can see the Class name in the Object Metadata subpanel.
In this case, the Class of our roof is an IfcSlab. You’ll notice this is the same Class name used as a prefix for the object name in the Outliner panel. You can also see the name of the actively selected object in the top left of the Viewport panel.
Sometimes, an IFC model will use the wrong Class. For example, a chair might be assigned as the Wall Class instead the Furniture Class. There is a special class known as IfcBuildingElementProxy, used when the user is unable to find a more semantic Class. If you see many IfcBuildingElementProxy Classes, it is likely a symptom of a low quality IFC model. If this is the case, scold the project manager and ask them to do a better job.
After IfcSlab it also says ROOF. This is known as the Predefined Type of the element. You can think of it as a further level of classification. In this case, it distinguishes our object as a roof slab, compared to other types of slabs. The Predefined Type is optional so you may not see it all the time.
You can use the Search IFC Class tool to learn the correct classes and predefined types you should see.
Press the Select Icon to select all objects that are of the same
IfcSlab Class. Then, you can isolate these elements by going to
> Show/Hide > Hide Unselected (hotkey
Shift-H). To show all elements again, you can use
Object > Show/Hide > Show Hidden Objects (hotkey
Alt-H). If you want to
hide elements instead, you can use
Object > Show/Hidden > Hide Selected
Remember that Blender’s hotkeys are context sensitive. Make sure your mouse is hovering over the Viewport panel when you press a hotkey or no cake for you.
You can also see statistics about the number of selected objects. If you right click on the bottom right status bar and enable Scene Statistics you will see information like Objects 4/4, which means that 4 objects are selected out of 4 available objects. This is a great way of counting objects like toilets.
Viewing attributes and properties#
You can view the Attributes, Properties, and Quantities of the selected object in the Object Properties tab.
Let’s focus on Attributes first. Scroll down to the Attributes subpanel. Attributes are a limited set of fundamental data (usually less than 10) associated with all IFC elements. These are fixed by the IFC standard.
Here are some common attributes and what they mean:
GlobalId: a unique ID for the element useful for computer geeks
Name: a short name, code, number, or label to identify the object for a human. If you had to annotate the object on a drawing or a schedule, the Name is what you should see. For example, a pump Name might be
Description: typically the longer form of the name, written to be descriptive and readable for humans. For example a pump Description might be
Water Suction Pump.
Tag: this is an ID that may link it back to another BIM application. For example if the IFC model was produced using Revit or ArchiCAD, it might hold the Revit or ArchiCAD element ID.
Predefined Type: A further level of classification to be read in conjunction with the IFC class.
Some IFC models have poor quality data. For example, if the Name
of a Window doesn’t match the window code (e.g.
W01) you see on a
drawing, the project manager has clearly not put enough effort. Shame on
Properties are other data associated with the object. Every project will have different Properties depending on what information they want to store. Each Property has a name and a value, and are grouped into Property Sets. Each Property Set also has a name.
You can find Properties in the Object Property Sets subpanel.
Some very common Properties are standardised by international BIM standards.
For example, the load bearing Property of a beam should always be called
LoadBearing. If a Property Set is part of the international standard, it
has a prefix of
If you see a Property Set without the
Pset_ prefix, it is a custom
property defined by the author of the IFC model.
It’s important to distinguish between Properties that are
part of the standard compared to custom ones. When Properties are
standardised, it makes it easy to manage data. So if you need to isolate all
LoadBearing elements, you now know exactly where to look.
Quantities are very similar to properties. They also have a name and a
value, and are grouped into Quantity Sets. Similarly, there are also common
quantities defined as part of the international standard, denoted by the prefix
Qto_. This prefix is short for “Quantity Take-Off”.
You can find Quantities in the Object Quantity Sets subpanel.
Finding the location of objects#
Every object in the built environment has a location in the world. For example, a chair will be located in a space, and a wall is typically located in a building storey. You’ve already seen this hierarchy of spaces in the Outliner panel, where an IFC project is broken down into site, building, storeys, and spaces.
Sometimes, objects may have multiple relevant locations, such as a multi-storey column which can be related to multiple building storeys. Even in these cases, IFC enforces one location to be its primary location, known as its Spatial Container.
If you click on any object, you can see its location in the Spatial Container subpanel in the Object Information tab.
Press the Select Icon to select all objects that are in the same location.
Checking construction types#
Almost everything in the built environment will have a Construction Type. For example, an architect will specify a door type for every door in a project.
You can see a list of Construction Types in the Outliner panel in the
Types collection. For example, if the architect has a wall types schedule
with the wall type names of
WT03, you should see
three IfcWallType objects with those same names in the Outliner.
You can click on these types to see more details about them in the Properties panel.
When selecting an object, you can also see its construction type in Object Information under the Type subpanel. You can press the Select Icon to select all objects that are of the same Construction Type. You can use the hide and isolate hotkeys to quickly view them in the model.
A Construction Type defines properties that are common to all occurrences of that type. For example, if a wall type specifies a fire rating property, then all walls of that wall type will inherit that fire rating too.
A Construction Type may also specify geometry or geometric rules that are common to all occurrences of the type. For example, a pump type will define the geometry of the pump, so all occurrences of that pump will have the same geometry.
You can visually inspect types in isolation to the rest of the model. Types are
hidden by default, so first enable the visibility of the Types collection in
the Outliner by pressing the Visibility Icon. Then, select a type, and
View > Local View > Toggle Local View (hotkey
/) in the
Viewport. Toggle the view to see the entire model again.
Only Construction Types where the geometry is exactly the same for all occurrences will specify geometry. When the geometry varies based on the occurrence (such as a wall, which varies based on the wall length), the Construction Type will typically have no geometry.
Filtering by materials#
Everything in the built environment is made from a physical raw Material resources. For example, a Material might be blockwork. Another Material might be in-situ concrete. Materials are grouped into categories like steel, concrete, brick, block, and so on.
We can see a list of Materials used in the project in the Materials subpanel in the Geometry and Materials tab.
Press the Select Icon to select all objects that are of the selected material.
Taking simple measurements#
The simplest form of measurement is the one that’s already taken for you. The Viewing attributes and properties section describes how to view pre-calculated Quantities.
Sometimes, you may wish to take manual measurements yourself. You can view the overall X, Y, and Z dimensions of the currently selected object in the Derived Coordinates subpanel in the Geometry and Materials tab.
Another way to manually measure from two points is to use the Measure tool. First, press the Snap Icon to enable snapping. Then choose snap targets in the Snap Menu in the top middle section of the Viewport panel.
It is recommended to choose multiple snap targets, like Vertex, Edge, and
Face, and Edge Center. You can use the
Shift key to select
multiple snap targets. For example, the Face snap target means that your
measurements will automatically snap to the nearest object’s surface.
Now that you have configured snapping, press the Measure Tool Icon on the
left of the Viewport panel. Click and Drag in the 3D viewport to
take a measurement. A circle will appear guiding the first point of your
measurement. While Dragging, press the
X key to lock the measurement
line along the X axis. Alternatively, press the
Z key to lock the
measurement line along the Y or Z axis. Let go of the mouse to finish your
To delete a measurement, just click on one point of the measurement, and press
Delete key. You can also click and drag the ends of your measurement
lines to measure to another location.
What else is there?#
Congratulations, and welcome to the digital built environment!
We’ve barely scratched the surface of the data and relationships available in an IFC model. We’ve yet to cover documents and drawings, clearance zones, tasks, cost items, structural loads and forces, analytical models, distribution system connectivity, energy analysis, rendering textures, and so much more. Our built environment and its relationships are vast and complex and it is exciting that you can join us on its digital journey!
Please do not hesitate to reach out with any questions.