Using the Component Distance Rule to Verify Compliance with Design Requirements

A common problem in BIM Design is objects of all kinds that are frequently left in the model at incorrect locations. A typical example of this would be light fixtures that are not correctly attached to a ceiling or are floating in space at heights that are not aligned with the design specifications, or worse yet, not located under a ceiling component at all. These issues can be easily identified and corrected during design review using the Solibri Model Checker (SMC) Rule Component Distance – (SOL/222)


The Component Distance rule can be setup to check minimum or maximum distances between components using one of eight methods:



Horizontal Distance Between Footprints: Distance Calculation between two components in two dimensions.




Shortest Distance Between Shapes: Distance Calculation between two components in three dimensions.





Facing Within Distance: Two components facing each other that are overlapping.





Directly Above: Vertical distance between two components, measured upward from the source component (shown as blue) to the target component (shown as red). 




Directly Below: Vertical distance between two components, measured downward from the source component (shown as blue) to the target component (shown as red).




Horizontally Alongside: Horizontal distance between two components.





Above within Offset Footprint: Distance above the source component that is extended horizontally by the ‘Footprint Offset’ value to the target component (shown in red).




Below within Offset Footprint: Distance below the source component (shown in blue) that is extended horizontally by the ‘Footprint Offset’ value to the target component (shown in red).



(For more information on these calculation methods, please see the article New in SMC v9.7.15: Component Distance Improvements)
For our example, we will focus on determining the distance between the bottom of the ceilings in the model and the bottom of any light fixtures. For this check we will use the “Directly Below” method of calculating the distance. We will also set the Component Surfaces drop down box to “Bottom to Bottom” and check the “Maximum” distance option, as we want to set a maximum allowable distance from the bottom of the ceiling to the bottom of a light fixture. In this example any light fixture hanging more than 1’ 6” from the ceiling will be violating our rule and will be flagged and assumed as hanging too low into the space.


If we wanted to check for a minimum distance between components (for example, to ensure the distance between the bottom of ceilings and the top of floor is ‘at minimum’ 8 feet), we would select the “Minimum” distance option.

The final step in our ‘maximum check for components below’ rule configuration is defining which components we are interested in checking.   In this example, we setup the ‘source’ component to be suspended ceilings, and the ‘target’ component to be light fixtures.



Running the check will reveal any results that are in violation of our 1’ 6” distance rule.

Since the light pictured below hangs 2 feet from the ceiling, it shows up as an issue when our check is run. If we were to change the maximum allowable distance to 2’ 1” the light would pass the requirement and would not appear in our checking results.


The highly customizable nature of the Component Distance rule in SMC allows users to experiment with different calculation methods, and to fine-tune any type of complex distance check while avoiding tedious false positive results.   Many different use cases can be devised and added to your model checking toolbox using this one rule template.

Using the Component Distance Rule to Verify Compliance with Design Requirements

Model Structure – SOL/176

Solibri Model Checker (SMC) has an extremely powerful QA/QC checking rule template named Model Structure (SOL/176).  This rule template is unique, as the parameters consist of simple check boxes for specific checks against the model.  This makes it one of the easier templates to setup; however, to get the best use of the template, it is important to understand the purpose of each of the various checks toggled on/off by these check boxes. You could simply mark all checkboxes, but for a complex model, the results view may contain many disparate results or ones that aren’t important for your use case.   Alternatively, you may wish to group certain checks together, for instance, checks regarding floors or checks regarding doors.  Furthermore, you may wish to use the template marking only a single checkbox to limit the check to that particular condition.

The purpose of this article is to familiarize you with each of the parameters of the rule template through examples so you can tailor a ruleset that uses this template to your liking based on what is important for you.  You can experiment with this template using the ruleset in the link below. This example ruleset has individual rule checks corresponding to each of the individual parameter check boxes.

Below are the rule parameters of the Model Structure rule template.

Model Structure - Parameters

Each section below will explain each of the parameters from top to bottom.


Like many of the rule templates in SMC, you are able to select the disciplines of models you want to check against or select ‘Any’ for all disciplines available in the aggregate model. Only the components in the specified disciplines are checked. The following article explains disciplines in further detail:

Disciplines in SMC

Check Containment Hierarchy

When this parameter is checked, the rule template checks that the model reflects the following hierarchy: model has building, building has floors and floors have components. In the image below, you can see the correct hierarchal structure of an IFC file.

Correct Model Tree Structure

Below is the model tree showing the hierarchy of an IFC with an incorrect structure loaded in SMC.  Notice that the building does not contain levels (building stories) that contain the components within the model.

 Incorrect Model Tree - No Floors

After running a check of the containment hierarchy, the results view reports the issue that no floors exist in the model.

Results - No Floors

Direct Relation to Floor

When this parameter is checked, the rule checks that all components in the model have a “Contains” relation directly to a building floor.  For example, furniture related only to a space (which is related to a building floor) will fail the check. In the image below, you can see two sanitary terminals are related to a restroom space, rather than directly related to First floor.

 Direct Relations to Floors - Model Tree

In the image below you can see the issue result displayed in the Results view.

Direct Relation to Floor - Results

NOTE: Your design software will more than likely relate components to space in which they are contained rather than directly to the floor.  You will likely wish to leave this checkbox unmarked, which is its default setting.

Check Empty Floors

When this parameter is checked, the rule checks that all floors contain at least one component. In the image below, the floor named “TOF Footing” is empty in the Model Tree view.

Empty Floor - Model

Below is an image of the Results view reporting the issue that TOF Footing doesn’t have components.

Empty Floor - Result

Check Floor Elevations

When this parameter is checked, the rule checks for multiple building floors located in the same elevation.  In the image below, the floor “Level 1” is selected and 0 is reported as its Global Bottom Elevation.

Floor Elevations

In the image below, a different floor named “Level 1a” is selected and its Global Bottom Elevation is also 0.

Floor Elevations

This issue is reported in the results view, which lists the elevation along with the names of the floors that reside at that elevation.

Floors have same elevation - Checking

Check Floor Names

When this parameter is checked, the rule checks if the model has multiple building floors with the same name. In the image below, there are two floors with the same name “First Floor” listed in the Model Tree view.

Floor Names are the Same

After running the check, the issue is reported in the Results view which lists the name of the floor.

Floor Names are the Same - Results

Verify Material Layers Thicknesses

When this parameter is checked, the rule checks all walls, slabs, and roofs in the model to ensure the sum of material layer thicknesses is the same as the thickness of the component itself.  Below is a wall that has a thickness of 4 7/8″, as listed in the Quanties tab of the Info view.

Wall Thickness

The Material tab lists the materials of the wall’s structure.  These tree materials add up to a total thickness of 4 1/2.”

Material Thickness

Since these two thicknesses differ, an issue result is returned for the wall stating the differences of thicknesses.

Material Thickness - Results

Doors/Windows in Same Floor AS Wall

When this parameter is checked, the rule checks to ensure the wall (or a roof/slab) and its doors/windows are included in the same building floor.  The model in the image below has a wall that is on the floor “Level 1” that has a height of 20 feet, which extends upward past Level 2, which resides at 10 feet.

 Wall on Level 1

There is a window on Level 2 attached to the wall as seen below in its Floor property in the Info view.

Window on Level 2

Also, there is a window that appears to be on the same floor as the wall selected in the image below.  However, this window was originally placed on Level 2, and was later moved below using a negative number in the Sill Height parameter.

Window on Level 2 with negative sill height

In the image below, the Sill Height property lists a negative value of -7′ 6″ in the constraints in the Info view after selecting the window.

Negative sill height

Since both of these windows reside on the Level 2 and the wall, which wasn’t split at level 2 is a single wall that resides on Level 1, an issue is reported in the Results view listing these two windows after running the check.

Window same floor as walls - Results

NOTE: You are able to automatically split walls and columns by floor by marking the “Split walls and columns by story” checkbox in the exporter of Revit.  For more information on this, please see Exporting an IFC File from Revit to SMC

Check Maximum Polygon Number

When this parameter is checked, the rule checks the geometry of all components in the model to ensure those components do not consist of more polygons than the specified Maximum Polygon Number parameter.  Below is an example of a sphere that has a 50′ diameter.   This component fails the check, and the Results view lists this component along with the polygon count of 4446.

 Maximum Number of Polygons

Viewing the component in wireframe mode within another application, you can see the 4446 polygons that make up the geometry of the sphere.

If you find that your model is sluggish while navigating or other performance issues, this rule can check if there is a specific component with complex geometry causing the issue.  To help in performance issues, that component could be hidden in SMC, or edited in the original design software to make it less complex.  For information on performance issues can be found in the article Optimizing Performance in Solibri Model Checker

Check Space Boundaries

When this parameter is checked, the rule checks all spaces to ensure they have correct space boundaries.  A space (room) in a model is bound by components such as walls, windows, doors, etc.  Spaces can also reside next to each other without a wall that separates them using room separators.  In the IFC, a space boundary element exists for these boundaries.

In the image below, a result is listed stating that there are missing space boundaries for the Radiographic Room.  There is a wall inside the space, which can be seen as it cuts out the geometry of the space.  However, no space boundaries exist for this wall.  The boundaries that do exist are listed in the result and are colored blue in the 3D view.

 No Space Boundaries

In the image below, you can see space boundaries highlighted in red that only bind a single space and no components or other spaces. The Results view lists these three space boundaries.

Space Boundaries only bind one space

After selecting one of the space boundary elements in the result view, you can see in the Relations tab of the Info view that the space boundary only binds the corridor space, but no other space or construction component such as a wall.

Only binds corridor

Check Orphan Doors and Windows

When this parameter is checked the rule checks if the model has doors or windows without relation to a wall. In most design software, when a door is placed on a wall, it generates an opening component that cuts out the geometry of the wall for the door to fit.  In the image below, an opening component is selected.  The Relations tab of Info view lists the backward filling relation to the door, since it fills the door and the forward void relation to the wall which it cuts out.


The opening to the right doesn’t have a filling relation to the door as an opening was cut out of the wall, and a door was placed in the location without actually attaching it to the wall in the design software.

When the rule is run, this door on the right is returned as a result stating that it isnt related to a wall.

Check Door Opening Direction

When this parameter is checked the rule checks that all doors in the model have the opening direction defined. The opening direction, or door operation, is needed for the Accessible Door rule.  More information on this rule can be found in the article Enhanced in v9.6 Accessible Door-Rule SOL 208

You can view the door operation in the Identification tab of the Info view as in the image below. Also, notice you can see the swing in the footprint in the 3D view.


In the image below, the door on the right doesn’t have a door operation. Selecting the door and viewing its Operation property shows it listed as Undefined. Also, the swing is missing in the footprint n the 3D View.

After running the check, the door with the undefined door operation is returned as a result.

Allow Only One Site

When this parameter is checked the rule checks to ensure the model has only one site.  In the image below, there are two sites listed in the Model Tree: Site Name and Site Name 2.

After running a check, a result is returned of the issue which lists the multiple site names.

Check Whether Site has Geometry or Not

When this parameter is checked the rule checks to ensure the site in the model contains geometry.  In the image below, the site is selected in the Model Tree which highlights it green in the 3D View.

In the image below, the geometry of the site was removed.  It is selected in the Model Tree, but there is no existing geometry in the 3D view to select.

When this check is run, a result is returned that lists the site that doesn’t have geometry.

Require Unique IFC GUIDs

This parameter is used to check if the Global Unique Identifier of components is unique in your model. The drop down that can be set to Unique in One Model, and the GUIDs of components are only compared within that single model.  When the drop down is set to Unique in All Models, GUID of a component is compared against the GUIDs of all components in ALL the loaded models.

In the image below, the beam on the left has a GUID value of 06pcgjPDbES92yHX6IVtf_.  This beam resides in the architectural model.

In the image below, the beam on the right also has a GUID value of 06pcgjPDbES92yHX6IVtf_.  This beam resides in the structural model.

After running a check for “Unique GUIDs in All Models” a result is returned for these two beams with duplicate GUIDs as seen selected in the image below.

The information provided in this article should provide you a better understanding of the Model Structure rule and allow you to custom tailor a ruleset using the this rule template to suit your needs QA-QC requirements.


Model Structure – SOL/176

Extension Manager: Creating and Managing Your Own Company Extensions

Solibri Model Checker version 9.7 introduced a new tool to create, save, export and open company-specific extensions (Extension Manager) from the Rule Set Manager (RSM) view. This new capability makes it possible for more advanced SMC users to build and share company, location, or project-specific rulesets and extensions.

Additional information on the Extension Manager and company extensions can be found here: Extension Manager View

For pricing or other related inquiries, please contact

As you become more familiar with the RSM and running checks in SMC, you’ll create your own specific rulesets based on a role or use case, such as accessibility checking or coordination.  If you have multiple users of SMC at your company, you’ll wish to share these roles, rules, and classification with those users while keeping these resources up-to-date on their machines when changes are made.  Company Extensions provide a simple method to package and store your own extensions in the Solibri Solution Center (SSC) that are available for users to install on their own machines.

In the following text, we’ll walk through creating our own company extension based on the “BIM Validation – Architectural ruleset”.


Open SMC v9.7.

Click File >  Roles > and click the Open button.

Select the “BIM Validation – Architectural.xml” role and click the Open button.

File > Roles > Open Role > BIM Validation - Architectural

By selecting this role, we’ve set the default resources in SMC to automatically load based on the BIM Validation – Architectural.xml role when opening an IFC.  This will also allow these resources to be loaded automatically in the Extension Manager view when creating the company extension. You can reset the interface to ask which role you wish to load upon opening an IFC by marking the “Show Role Selection” box under File > Settings > General.  For more information on roles and role selection, please see: Roles in Solibri Model Checker/

While in the File layout, click “Ruleset Manager.”

File > Ruleset Manager

Select “Extension Manager.”

File > Ruleset Manager > Extension Manager

In the “Account Extensions” view click the  New Company Account Extension button.

Account Extensions

A dialog box will open, asking whether or not you wish to include resources of role “BIM Validation – Architectural.xml”. Click the “Include” button to include the resources that are part of this role.

New Extension - BIM Validation

The “Extension Manager” view will now display the Roles, Rulesets, Information Takeoff Definitions, Classifications, and other templates that are part of the “BIM Validation – Architectural.xml” role.

Extension Manager

Notice the message “Some Links are Broken” at the top of the Extension Manager view.

There are icons to the left of listed resources that indicate whether or not those resources link to other files. A working link is indicated by a   working link icon, while a broken link is indicated by a  broken link icon.

The out-of-the-box General Space Check ruleset is missing a “Building Elements – Uniformat” classification referenced in one of its rules, which is indicated by a  broken link icon.

In the Classifications list, click the  Add Classification button.

Browse to the “Building Elements – Uniformat” classification and click the Open button.

Extension Manager - BIM Validation Fixed

The link to the “Building Elements -Uniformat” classification referenced in the “Space Validation” rule within the “General Space Check” ruleset is no longer broken now that the classification has been added.

In the Rulesets list, click the  Add Rulesets button.

Add the “Egress Analysis.cset” ruleset.

Again, notice the “Some Links are Broken” at the top of the Extension Manager view, along with the  Broken Link icon next to the newly added ruleset.  The Egress Analysis ruleset relies on the “Exits” and “Vertical Access” classification files to determine egress routes.

In the Classifications list, click the  Add Classification button, and add the “Exits” and “Vertical Access” classification files to resolve the issue of broken links.

In the Account Extensions view, click the  Export SRE as a JAR button and save your newly created Extension to your machine.  In this example, we saved the file named “My Extension.jar” to the desktop.

This extension is now able to be uploaded to your company’s Solibri Solution Center (SSC) account.

Login to your SSC account as an administrator at

In the Administrator view, click the Company Extensions tab

Click the Add Company Extension button

Solibri Solution Center - Company Extensions

A window will open prompting you to browse to your extension, provide a short description, provide a custom logo, and version number.  Browse to the .jar file of the extension you created, provide a description and version number and click the Generate Extension button.

Add New Extension Window

A window will open stating that the extension will be processed and an email will be sent to your SSC email address once the extension is available.

When completed, you’ll see the extension listed under your company extensions in the SSC.

SSC - Company Extensions - My Extension

You can now assign your company extension to users in your company’s SSC account. Click the License Assignment Tab, select the Extensions radio button,

Click the License Assignment Tab, select the Extensions radio button, Select the newly added “My Extension” extension from the list and click the Refresh button.

Mark the users you wish to have access to your company extension.  For this example, ensure you mark your own user account so that the extension will be available in your install of SMC. Importantly, scroll down in the window and click the Assign button so that the update takes effect.


In SMC, click File > Solution Center.   You’ll find the “My Extension” extension you created available to install.  Click Install.

SMC - Solution Center

Close and reopen SMC.

Click File > Roles and click the Open Button.

Click the Resources tab, and you’ll find the role of your newly created company extension.  This role will include the resources of your company extension.

Open Role

In addition, if you click File > Settings > General and mark the “Show Role Selection” box, when you add a ruleset to a new project, the role of your company extension will be listed.  Notice in the screenshot below, the role BIM Validation – Architectural at the bottom.  This is the role of the company extension.  There is another “BIM Validation – Architecture” role listed above, which was the original role we modified to create our customized company extension from.

Please Choose a Role


Extension Manager: Creating and Managing Your Own Company Extensions

Space Group Containment – SOL/175

Solibri Model Checker (SMC) includes the rule template named Space Group Containment (Rule Template # SOL/175) that is able to check that specific space groups exist in your model and that those space groups contain the correct spaces and counts of those spaces. Since the list of required space groups and their required spaces varies from project to project, you must configure the rule parameters with your own values rather than using default values, as with some other rules in SMC.

You are able to find information for this rule in the help topics by following the link below to the Solibri Solution Center:

The following article will provide an additional explanation, using the SMC Building.ifc and the “Example Rules” role.  To open this role, select Roles under the File tab, click the Open button, and browse to the Example Rules role.


This role includes examples of all the rules templates in SMC.

After opening the SMC Buidling.ifc, switch to the Checking tab.  When you click to add a ruleset, a window opens that allows you to select rules from the Example Rules role. Please, select the #175 Space Group Containment.


Click the checking button to view the results of the check.

The first category of results listed is “Not enough spaces”.  This category occurs when a space group does not contain a required space.  You can see in the Info view, the Elevator space is not included in the Common Area space group.


Checking the rule parameters of the rule, we see all the required space groups and what spaces are required to be contained in those space groups.  Space Groups named Common Area must contain a single Elevator, Lobby, Stair, and Corridor space.


In the model, the Common Area space groups contain a single Lobby, Stair, and Corridor, but not the required Elevator space, which explains the result previously seen.

The second category of issues is listed as “Too many spaces.”  These issues occur when a space group contains additional spaces that aren’t listed in the requirements.  The Common Area 231 space group includes a Restroom, Gym, Kitchen, and two Corridors instead of a single Corridor, which explains the result and description in the Info view.


The last category of issues is “Inadequate Information.”  These results are listing space groups that were not listed in the requirements.  The requirements in the Rule only allow for space groups named Common Area, Education and Conference Area, Petty Education Inc., Arbor Doves, Inc., Tomorrows Lubrication, Inc. and Biochemical Startup, Inc..

Checking the Classification view, there are two types of Space Groups, Gross Area and Other.  Only the space groups from the Other type are listed in the requirements of the rule.


These results of additional space groups have a low severity denoted by the yellow warning icon, so you could approve their results as non-issues or you’ll need to fill in all the required spaces and their counts for the Gross area on each floor. Alternatively, you could remove gross areas from the classification rules of the Space Grouping classification.






Space Group Containment – SOL/175

Using the Space Validation rule to Ensure Model Accuracy

In Solibri Model Checker (SMC), there are many existing use cases around the idea of space checking.  To take advantage of the rules used for space checking requires correct modeling of spaces, and measuring of interferences or inaccuracies to ensure that results in SMC are correct.  Only when model spaces are detailed to the level that they are an accurate representation of the real world environment will the results of these use cases be valuable.

To ensure space requirements are modeled correctly, SMC uses several different rule templates.  One rule template, Space Validation, will identify several key space issues that are commonly found in AEC models.  These issues pertain to space components not being aligned with bounding surfaces such as walls or floors, as well as areas of a model that do not contain spaces at all.

Using the Space Validation template, you can ensure accuracy so various space checks can then be run, with confidence.

One example use case is if you are aggregating spaces to calculate areas, or total square feet, it would be important to verify that all spaces are correctly modeled to the real as-built square footage.  Any gaps in square footage, or where spaces are missing from the model, or where the space is actually overlapping with another component, will first be caught by the Space Validation rule.  This allows the designer to make the necessary corrections before proceeding with more complicated space checks.   In order to perform any sophisticated space checks, such as code-based checks like Egress Analysis, spaces must not be missing or inaccurate in the model, as that would probably have significant consequences.

Luckily, while this all may sound complicated, the Space Validation template is relatively simple to use, and it does all the hard work:



The acceptable gap or intersection between a bounding component and a space.  If the intersection or gap between a bounding component (walls, floors, ceiling, etc.) and space is more than the tolerance, an issue is created.

Acceptable error in space perimeter

The acceptable length of a space perimeter where the space is not touching any bounding component. If the perimeter segment length is greater than the entered value, an issue is created.

Required Space Height

The minimum acceptable space height. If the space height is less than the required value, an issue is created.

Check Top Surface

If checked, a slab or a roof or the bottom surface of another space has to touch the top surface of the space. Suspended ceilings are not always modeled, and in such a case, this option should be left unchecked.

Check Bottom Surface

If checked, the bottom surface of the space must be touching a slab or another space.

Intersection Components

‘Intersection Components’ are considered by the rule to be those components that shouldn’t generally intersect with spaces. If a space is intersecting with one of these component types an issue is generated and should be visually reviewed.

Check Unallocated Space

When checked, the unallocated spaces (any area that is not occupied by spaces, walls or columns) are checked and flagged as potential areas of the model that are missing modeled components. With very few exceptions, areas of the model should always contain a space or object modeled for an accurate BIM.

Maximum Allowed Unallocated Space

The allowance for interstitial areas between walls and/or utility closets is one exception to the above rule.  In such cases, you can enter a maximum allowed space size that can be ‘excluded’ from future space checks.  These ‘empty’ spaces are allowed by SMC because they can be ignored for the sake of checking things like square footage or egress analysis.  Space between walls should have no bearing on area calculations, just as utility closets should not affect occupancy loads or egress routes.

Result Categorization Method

You can categorize results either by spaces or by problem types. If you categorize results by spaces, each space creates one and only one issue. All problems related to that space are described within the issue. If you instead choose to categorize results by problem type, each individual problem type will appear as a category, regardless of which space they are occurring in.

Use Arrows in Visualization

When checked, arrows are added as a visual aid when reviewing the issues that are generated.

It is crucial when doing space checks in Solibri Model Checker that a model is first checked for accuracy and completeness.  The Space Validation template provides a first step in checking that the required detail has been modeled and should be considered an important element for any ruleset designed for space checking.  Without this first important step for space verification/validation, space checking results might not accurately reflect the real-world conditions of a building.

Using the Space Validation rule to Ensure Model Accuracy

Property Values Must Be from Agreed List – SOL/9

Solibri Model Checker (SMC) includes the rule template named Property Values Must Be from Agreed List (Rule Template # SOL/9) that is able to validate the values of specific properties of specific components based on your own project-based list. Since the list of agreed property values varies from project to project, you must configure the rule parameters with your own values rather than using default values, as with some other rules in SMC.

You are able to find information for this rule in the help topics by following the link below to the Solibri Solution Center:

The following article will provide an additional explanation, using a slightly modified version of the SMC Building.smc sample project that comes with SMC, to verify that the names of rooms in a model follow the naming convention of an agreed list from an excel file.

SMC Building – Space Names Must be From Agreed List.smc

After opening the model, click the Information Takeoff Layout.  In the Information Takeoff view, you’ll see a takeoff of all rooms with their corresponding names and counts.  Notice there are 2 rooms named “Restroom” and 6 rooms named “Stair.”


Select the Checking Layout and expand the results of the Room Names Must be from Agreed List rule.  Notice that there are 2 result categories that group the Restroom and Stair spaces.


Right-click the rule in the Ruleset view, and select Rule Parameters to see the parameters of the rule. In the Components to Check filter parameters table, we are checking spaces, but excluding space groups such as Gross Area spaces, since those types of spaces won’t follow a naming convention as that of room names.

In the Allowed Properties Table, notice that there is no “Restroom” listed as an allowed value for the name of a space, as “Toilet” is listed as the agreed value. This explains the result stating that “Restroom” is not an allowed value for the name of a space.

Also, notice that “STAIR” is listed as an allowed value; however, the Case Sensitivity checkbox is marked.  This explains why “Stair” (which is not in all capital letters as in the list) is listed as a result, as well.


If you unmark the Case Sensitivity checkbox and re-run the check, you’ll see only “Restroom” remains as an issue in the Results view and rooms named “Stair” are now accepted.

In the Rule Parameters of the rule, you may have noticed that the row editing buttons row_editing are greyed out.  This is because the table data in the rule parameters is currently locked from editing.  This ensures that the rule is only using information that is consistent with your agreed list, which is imported from an excel sheet, external from SMC. If changes are made to the agreed list of values that the rule links to, you should update the information in the excel sheet and click the Update Imported Data button.

You are able to manually create rows rather than importing an excel sheet; however, importing an external sheet makes the parameter entry process much easier, less prone to introducing errors, and safeguards inconsistency from what SMC is checking, and what was agreed upon as allowed values.

Since the sheet isn’t stored locally on your machine in the same path, to update the table you’ll need to turn on table data editing, remove the existing content in the table, and import an updated sheet.

Click the Allow Table Data Editing allow_table_data_editing button, which will break the link to the excel file and enable the row editing buttons.

Click the Import Excel Worksheet import_excel_worksheet button.

Download the following excel sheet and browse to the file.

Room Names Must Be From Agreed List v2.xlsx

This first page of the import dialog allows you to map the Component, Property, and Acceptable Value parameters to specific columns in an excel sheet.  Since, the columns in the excel sheet were setup to match those same parameters respectively, you can click Next.


The next page of the dialog requires you to hold down the CTRL key and multi-select rows from the sheet. If you simply click Finish, nothing will be imported since nothing is selected.  Notice, the first row was not included in the selection as these values are column headers in the excel sheet.


After clicking Finish, the data table is updated with the values that match those within the model, and the Allowed Properties Values link is now pointing to the new version of the sheet:


If you re-run the check, you’ll find there are no issues, as all room names match those that are in the agreed list.

This is one simple example of this very versatile rule.  Another example worth mentioning and is included in the example rules folder that comes with SMC, is to check components against a list of approved construction types to find those that may have been accidentally introduced into your model that are outside your standardized approved libraries.

Property Values Must Be from Agreed List – SOL/9

What makes SMC Unique? The ability to check for Logic and Behavior

Solibri Model Checker (SMC) allows for simple, discrete, property checks of components and spaces, such as verifying that certain types of components and spaces have a specific property defined (e.g. Fire Rating) and the property is valid (e.g. 2-HR).  These simpler types of property checks are useful for validating information related to COBie, Level of Development (LOD), Quantity Takeoff, etc.  Likewise, you can check a model geometrically to ensure certain types of components or disciplines of models don’t have interference with one another, such as duct and pipe running into structural beams and columns, or a check for required clearances in front of windows or electrical panels.

However, SMC also allows for complex conditional checks that involve logic and behavior to verify that if a component or space has some property, condition, relationship, and/or behavior then that component or space must also pass certain other requirements. In short, knowing that specific information is required to accompany model elements is important, but being able to analyze the IMPACT of that information and how it can affect building performance is where the real value of SMC is established. In this article, we’ll describe how you are able to set up more complex checks in this way.

A Logical check: Plumbing above Electrical Rooms

In the first example, we will focus on a check to ensure that plumbing such as domestic cold or hot water and sewer does not run above electrical rooms, as this could cause serious issues if this plumbing leaks or bursts above spaces containing electrical components.

A logical statement to check against the model is: “IF a space is an electrical room THEN no plumbing system that is of type cold water domestic, hot water domestic, or sanitary should run above that space.”

In order to find spaces in the model that are electrical rooms, classification is used to map those spaces either by their name or some other distinguishing characteristic such as an OmniClass number. Below we see the mapping of any space that starts with “ELEC” to the classification “Electrical”:

Spaces with names that start with "ELEC" map to the Electrical classification
Spaces with names that start with “ELEC” map to the Electrical classification

To check if plumbing is of type Domestic Cold/Hot Water or Sanitary, we need to know what property set/property pair stores that information. Again, using classification allows us to map to that property location and set the Classification to the value of the property automatically.  Below, the “System Type” classification sets a classification name for any component base on the value of the “System Classification” property found under the property set “Mechanical”:

Mapping the System Classification to the value of the Mechinical.System Classification property
Mapping the System Classification to the value of the Mechanical.System Classification property

More information on classification can be found in the articles:

These classifications are used in the rule parameters of the SOL/222 – Component Distance rule template below:

 Plumbing must be a minimum distance of 5' above Electrical rooms
Plumbing must be a minimum distance of 5′ above Electrical rooms

This rule checks that any component that has a System Classification that is classified as Domestic Cold Water, Domestic Hot Water, or Sanitary has a minimum distance of 5′ above any space classified as “Electrical”.

After running a check on a model, there is a result in which a pipe on the Sanitary system is running 3″ inches above the space in the model.

An issue where Sanitary pipe is 3" above Electrical space
An issue where Sanitary pipe is 3″ above Electrical space

Another view shows that the pipe runs above the suspended ceiling across this electrical room that has electrical panels:

Another view of the result
Another view of the result

Advanced Logical Checks using Gatekeeper Rules

Rather than using the name of the space to determine if it is an electrical room, the SOL/225 – Number of Components in Space rule template could be used to return any spaces that contain electrical equipment as a result.  Using this as a Gatekeeper rule, the spaces returned as results are then fed to the sub-rule SOL/222 – Component Distance as the source component to ensure any plumbing has a minimum distance of 5′ above those spaces.

Gatekeeper rules also allow SMC to chain multiple conditions together.  Below is the example from the article Self-Configuring Rulesets: Gatekeeper Rules that checks that any space over 500 sq. ft. and that contains a boiler, incinerator, or furnace must have 2 exit doors.

Gatekeeper Rule with multiple chained sub-rules
Gatekeeper Rule with multiple chained sub-rules

The logical statement based on the chained gatekeeper rules and their results is:

IF a space is more than 500 sq. ft. and IF the space contains a boiler, incinerator, or a furnace THEN that space must reference 2 or more doors.

More information on Self-Configuring/Gatekeeper rules can be found here:


The behavior of door components for accessibility Checks

Door components have an operation property defined. This property defines the behavior of the door as to whether it is a sliding, folding, or swinging door. If it is a swinging door, the operation also states if the door swings left or right.  There is also a behavior on the part of a person opening the door, in terms of pulling or pushing the door open and whether the door is normally approached from the front, latch, or hinge based on their room.

The article, Enhanced in v9.6: Accessible Door Rule – SOL/208, provides a detailed look at modeling doors to have their behavior included and a ruleset can be used to check maneuvering clearance of accessible doors based on the logic of how the door is approached.

Below is a single-swing-right door that has the behavior of how it is approached from the push and pull sides included in the Data property set.  On the push side, it is approached from the front.  On the pull side, it is approached from the latch.

Door with a latch approach on the pull-side
Door with a latch approach on the pull-side

Again, a gatekeeper rule is used as a logical check to return any doors as results IF they have a latch approach on the pull side and IF they have a closer attached. Those door results are then passed to the sub-rule that checks for the clearance areas in front of the door, and past the latch based on that type of approach.

Below you can see a result where there is not enough clearance perpendicular to the door:

Latch Approach, Pull Side Result

What makes SMC Unique? The ability to check for Logic and Behavior