Rule management
The rule management allows to create, edit and delete checking rules. In addition, rule sets can be exported or imported.
On the left side, all rule sets available in the project are listed.
Rule sets
To create rules, a rule set must first be created or selected.
Managing of rule sets is done in the left sidebar. The following functions are available from the toolbar: * Plus symbol: Creating a new rule set. * Pencil icon: Renaming a rule set. * Trash symbol: Deleting a selected rule set.
A rule set can be selected with a single mouse click. Its contained rules are then displayed in the content area on the right hand side.
Rules
Rules represent the actual checking logic and are managed within rule sets. The rules are displayed in the content area after selecting a rule set.
A new checking rule can be created via the 'New checking rule' button. First, you will be prompted to specify a name and description for the checking rule.
The test logic is then defined in the form of preconditions and test rules.
Preconditions formulate a filter for elements of the model. Only if an element passes all listed preconditions, requirements on this element are checked. Defining preconditions is optional. If no preconditions are specified, all model elements are checked.
Requirements: Requirements articulate all the conditions that an element requires to pass this rule.
Concrete conditions (of preconditions or checking rules) can be created using the plus symbol.
Therefore, different checking types are available, which one of is required to be used. The test cases are based on the IDS specification. BIM.permit supports the subsequent types: - Type (Entity) - Attribute (Attribute) - Properties (Property) - Relations (PartOf)
The implementation is described in the chapter rules types.
Saving rules
When editing rule sets, the change must be confirmed, manually. As long as a rule set is being edited, no further rule sets can be selected. If the rule set has changed, it is indicated to the user.
Rule types
The rules are structured according to IDS specification. Different types of checking are structured in so-called facets.
The definition of elements is based on the IFC schema.
Entities
Entity constraints allow the restriction to IFC classes. Usually this is used to filter elements, that should be checked.
Fields
- Entity name: Name of the IFC entity, e.g. "IfcWall"
- Predefined type: Restriction to the predefined type, e.g. "STANDARD"
No supertypes supported
The IDS standard does not allow inheritance, so it is necessary to list all classes individually; such as IfcWall, IfcWallStandardCase and IfcWallElementedCase to get all walls in a model.
Attributes
Attribute constraints can be used to filter or check by attributes. Attributes are direct properties on an IFC element, such as GlobalId or Name.
Fields
- Attribute name: sets attribute names.
- Attribute Value: sets attribute values.
Properties
Property constraints are used to filter or check property sets. The principle is based on the IFC Property Concept.
Fields
- Property set: Defines the name of the property set.
- Property: Defines the name of the property.
- Data type: Defines the required data type.
- Value: Defines the allowed values.
Classifications
Classification constraints allow to filter or check after classification Systems.
Fields
- Classification system: Defines the name of the classification system
- Reference Code: Defines the reference code of the classification system
Material
Material constraints allow to filter or check by material names.
Fields
- Name: Defines the name of the material
Relationships
Relationship constraints can be used to check whether elements are part of a spatial structure, a partial element or part of a group.
Fields
- Type: Type of relationship (see subsequent cases).
- Entity name: Defines the related elements (as IFC class).
Case 1: Part of a spatial structure:
Checks if elements are part of a spatial structure (subclasses of IfcSpatialStructure) e.g. IfcBuilding or IfcBuildingStorey.
Case 2: Partial element:
Überprüft, ob Elemente Teil von einem Gesamtelement sind, z.B. IfcBuildingElementPart als Teil von IfcWall.
Case 3: Part of a group:
Checks if elements are part of a group.