This article describes how the Required Property Sets rule works and how you can configure the rule. Rule #203 is one of the most popular rules in Solibri, for it can be used to verify the usability of project data already at the beginning of the project. Also, it can be used to verify that the level of information in the project is high enough for construction and production needs (for example for orders and installations).
The article contains the following topics:
Related articles:
Tip
For this rule, we have an example spreadsheet which you can fill in. You can find it in the Examples folder (Required Property sets.xls in C:\Users\Public\Solibri\SOLIBRI\Samples\data), or download it at the end of this article.
The Required Property Sets rule checks that the model contains the required property sets and properties. It can also check that the properties have (or don't have) a value, and the type of the value is acceptable. The rule is typically used in the first phase of BIM validation to ensure the usability and readiness of the model for more detailed checking and information takeoff. With this rule, you can verify that the IFC model is exported and delivered according to requirements. Issues are created if the model doesn't contain the components with the required properties.
The rule checks component data in two phases (similar to a gatekeeper ruleset). First, the rule checks if the component with a specific property and value (defined in the Checked Components filter) can be found in the model. Then, if the component exists, the rule checks if the found component fulfils the Property Sets filter conditions. Issues are created if the model doesn't contain the required components with the required properties.
In the rule parameters, you have two component filters. In the first filter (Checked Components), you can filter components or define property requirements. In the second filter (Property Sets), you can define other required property sets for the component.
Checked Components:
-
Select the components you wish to check.
-
If two rows in the table have the same components, there's a logical AND between them and each of these conditions must pass to get among checked components. If they have different components, there's a logical OR between the rows.
Property Sets:
-
Define the component-specific Property Sets with very specific value conditions. You can also define if this value is visualized.
The values can be listed either manually or imported using an Excel spreadsheet. For more information on using external data in rule parameters, see here.
-
If you add multiple values to a component, all those requirements have to pass.
-
Table columns:
-
Property Set: select the name of the required Property Set.
-
Property: select the value which is required in that property set.
-
Value Exists: Select the value from the following options:
-
Optional: The property can have a value, but it is not required.
-
Must exist: The property must have a value.
-
Must not exist: The property must not have a value.
-
-
Value Conditions: To select the value, double click the Value Conditions cell. Select from the following options:
-
Text: If you select the value type to be Text (String), you can set a Pattern to what kind of strings are acceptable. You can use * (asterisk) as a wildcard to replace any number or letter. For example, you can set the condition to be ND*, which means that all nominal diameter values for the property should start with ND.
-
Boolean: If you select the value type to be Boolean, you can select the condition to be True, False or True or False. For example: A certain wall structure type starting with EW* is used only for external walls. In the IFC standard, it's a standard option to deviate walls as external or not with the Boolean True or False options.
-
Numeric: For numeric properties, you can set the unit and limit values. You can also divide the value by the area or volume of the component (typical for some specific properties for spaces). Example: The area of any space with a name that contains Accessible must be between 2m2 and 8m2.
-
Date: For the Date value type, you can specify a range of Date values. For the operators, you can select between =, >, <, ≥ and ≤ and then specify a date value in the text field. Example: Certain concrete elements must have the installation date set between 2022-01-14 and 2022-01-21.
Important
Ensure that the target value has the date in the ifcDate format. Strings are not accepted.
-
Enumeration: For the Enumeration value type, you can add a predefined list of allowed values.
Note
When items or elements are calculated and listed in numbers, enumeration is used.
-
Visualize Only: If this option is activated, the values are not checked, but used only for visualization. To select a visualization color for the components which match the conditions, open the Tools view.
-
-
Important
To ensure the operators an values with units are imported correctly, keep the formatting for the spreadsheet the same.
Categorization: This rule creates an issue for each missing property set or property.
-
If the model doesn't contain the property set or property, the whole model is attached to the issue.
-
If only a few components are missing the property set or property, they are attached to the issue.
-
If the component belongs to a specific discipline, only that discipline (model) is included in the results.
-
If a value is required, but does not exist, an issue is created and components with missing values are attached to the issue.
-
If the value exists, but is not accepted, an issue is created and component with incorrect values are attached to the issue.
-
If the value type is incorrect (the value is not on the list of accepted values), an issue is created and all components with the incorrect value are attached to the issue.
Severity: You can specify the severity classes according to your preferences and priorities in the Severity Parameters dialog.
When rule #203 is used as the parent rule, the output components can be a any non-container components. When rule #203 is used as the sub-rule, the input components can be a any non-container components. You can read more about gatekeeper rules here.