Compliance Checking Using IFC Schema & Solibri

Why Should We Check?

Checking that design standards are being met, or that an owner’s BIM delivery requirements are being fulfilled, is an extremely valuable process; however, often times it can be a laborious one. Over the past two years, we have been building compliance checks that ensure an owner’s projects are being built in alignment with standards. These design standards range from experiential requirements, to performance requirements, to constructability requirements. Catching mistakes in the field costs too much time and money.

Where Should We Check?

When deciding on where these compliance checks should take place, we prefer them to occur as close to the source of creation of content as possible. This means that often times, we help our clients create intelligent content based around their standards. Other times, the compliance check may be a bolt on process to the authoring/design process. An example of this would be the use of Dynamo, a graphical programming interface for Revit. We have deployed compliance checks for designers that use Dynamo to compare an approved list of products against what is in their building information model.Jason Andersen has some really good examples of great ways to use Dynamo on his blog here.

Sometimes a compliance check may need to be done on a building information model that you did not author, or the amount of effort required to build a check in Dynamo may be too much. One application that is built for running checks on models is Solibri Model Checker. The application has some genericized rules that allow you to check for a lot of different requirements. Some of the rules are pretty straight forward, while some are not. One of those rules that can be a bit confusing, but extremely powerful, is Rule 231 – Comparison Between Property Values. To demystify this a bit, I will walk through an example of how to use this rule to check for a design standard that would be really difficult to do in another application.


It is often the case that specific spaces have defined requirements. Additionally, some building products may only be used in very specific ways. For example, rated shaft wall types should enclose shafts/penetrations through slabs. Or, a wall mounted device may require a certain amount of depth and therefore, needs to be mounted on a wall type that has a width capable of receiving it. These types of checks contain building projects that have relationships. We essentially need to check their relationship with another product, and approve it or not.

Using IFC Schema

Determining relationships in model authoring platforms can be difficult for a non-programmer. An easier route is to take advantage of IFC, Industry Foundation Classes. There are a lot of AEC applications that are capable of exporting IFC. In the IFC Schema, the main image of this post, there are many relations that are supported. Elements have relationships with other elements, with the building level they are on, and with the space they exist in.

In the example below, I show how you can take advantage of the Referencing relationship called IfcRelReferencedInSpatialStructure to determine if an element that bounds a space is acceptable.

The image below shows the results of the rule I am about to explain. In the image, you will see the unapproved spaces highlighted that have a full height storefront bounding them.


Results of Solibri Rule showing wall types used incorrectly


Before getting into the Solibri rule, I want to point out what we are actually doing at a high level. In the IFC 2×3 schema documentation, you will find a ton of relations. We can use Solibri Model Checker to look at any of these relations. The image below is the IfcRelReferencedInSpatialStructure relation I mentioned. It allows us to know what spatial structure a building element is associated with. This relation is documented here


Ifc Schema Diagram for IfcRelReferencedInSpatialStructure

What Are We Checking?

“Full height storefronts, should only be used along circulation spaces”

This is pretty clear, but we need to rewrite that to know what to check for in a model.

“The spaces that a full height storefront bound, must at least bound a circulation space (Hallway, Corridor, Lobby, etc). If the storefront is not bounding at least one of the approved circulation spaces, then the wall is placed improperly.”

How To Setup The Rule

In the Solibri rule, all we have to do is define what wall types we want to check. The reason we want to check the wall types as our primary checked component and not the spaces, is to allow us to check both sides of the storefront at the same time. A full height storefront that bounds both a rentable space and a circulation space is acceptable. What is not acceptable is a full height storefront that ONLY bounds rentable spaces on both sides.

After we select the specific storefront wall types we want to check, we choose what space names are acceptable. We select the dropdown option Related Component, because we want to actually check a property of a component that is RELATED to our storefront walls. This Relation is called “Referencing” in Solibri and in our case, Backward direction is the direction we want to traverse the relationship tree. Next, we filter out what elements can be captured by that Referencing relation. For example, we want to filter out all building stories and only grab spaces. The qualifier is that we want the storefront wall to have at least one of the approved values. The property that our approved/target values exist in, in this example, is a custom classification I created to categorize the real space names into groups of spaces. For example, there may be 5 different types of offices, that all should be classified as Rentable. The Operator setting is One Of, because we do not require Each of the space names to be in the Relation. Finally, we group any issues we do have by Floor first.


Solibri Rule Settings

Hopefully this sheds some light into checking relations within Solibri Model Checker. The objective of these compliance checks is to be absolutely confident that your work product, in this case a building information model, does not contain errors. Errors that can be commonly overlooked due to late night pushes for deadlines. From an Owner’s perspective, these types of compliance checks allow you to remain confident that your design team or construction team is providing you with the information you need and trust.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s