Self-Configuring Rulesets with User Input

Version 9 of Solibri Model Checker (SMC) introduced a powerful new feature for ruleset management: self-configuring rulesets.  These allow sub-rulesets and rules to be grouped under parent self-configuring rules, which are only checked based on the results of those self-configuring parent rules.  In addition, a user input container component was added to allow a user to specify properties of a model within SMC itself.  For example, using these two new features, a user can now specify a building type or phase of a project as user input within SMC, and the rulesets will self-configure to only check for the requirements specific to that building type or phase.

Often called “Gatekeeper” rules, these rules also have the ability to only pass specific components that pass or fail a check to sub-rules for further checking.  However, this is a topic that is discussed in the article: Self-Configuring Rulesets: Gatekeeper Rules

This article will teach you how to create user input tasks for your self-configuring rulesets, how to create the self-configuring rulesets themselves, and how to configure your rulesets by setting user input properties in the To-Do dialog.

The ruleset created through the list of steps below is available here : User Info Example.cset

Creating a User Input task

The first steps in creating a self-configuring ruleset that uses user input is to create the user input task(s) for the ruleset:

  1. Open SMC.
  2. Open any model, such as SMC Building.ifc found in the Samples folder of SMC. You can easily find this folder under Recent Model Places by selecting File > Recent.
  3. In the Ensure Model Disciplines dialog, leave the Discipline set to Architectural and click OK.
  4. Click File > Ruleset Manager.
  5. In the Ruleset Folders View of the Ruleset Manager, select Rulesets Open in SMC, which is the last listing.
  6. In the Workspace View, click the New Ruleset New Ruleset button. This creates a new ruleset that is currently open in the Checking View of the Checking Layout.
  7. In the Workspace View, select the New Ruleset that was just created.
  8. In the Info View, enter “User Info Example” in the Name box.
  9. In the Parameters View, click the Add New Task Add New Task button.
  10. In the Select Tasks to Add dialog that opens, click the Add User Input Task button.
  11. In the Add Task dialog, enter “Set Project Design Phase” for the Name and “Project Design Phase” for Property Name.
  12. In the Description box, enter “Set the Project Design Phase user input to either Schematic Design, Design Development, or Construction Documents”
  13. Add three rows to the Options list by clicking the Add a New Row Add New Row button three times. In the three <Empty> cells, enter “Schematic Design”, “Design Development”, and “Construction Documents”. The Add Task dialog should look the same as below. Click OK.

    The Add User Input Task dialog
    The Add User Input Task dialog
  14. In the Select Tasks to Add dialog, click OK.   The Project Design Phase task has now been added to the list of tasks in the Parameters View. When this ruleset is opened in the Checking View, the To-Do dialog will open and prompt the user to select a Project Design Phase.  The Name parameter set in the Add/Edit Task dialog is what will displayed in the To-Do dialog.   If you hover over the task in the To-Do dialog, a tooltip is displayed with what is provided in the Description box of the Add/Edit Task dialog.
    To-Do Dialog with a User Input Task
    To-Do Dialog with a User Input Task

    The Property Name in the Add/Edit Task is the user input property that will be used for checking in rulesets.  The items you add to the Options table in the Add/Edit Task dialog are the available choices a user can pick in the User Input Task Wizard dialog that opens after clicking the task in the To-Do dialog.

    User Input Task Wizard
    User Input Task Wizard

Creating Self-Configuring Parent Rules

Now that we have the user input task created, we can create the parent self-configuring rules that check the user input.

  1. In the Libraries View, expand Solibri Common Rules and drag the Property Rule Template with Component Filters rule template onto the User Info Example ruleset in the Workspace View to add the rule to the ruleset. This rule template is the one most commonly used to check user input.

    Adding the Property Rule Template with Component Filters Template to the User Info Example Ruleset
    Adding the Property Rule Template with Component Filters Template to the User Info Example Ruleset
  2. Select the Property Rule Template with Component Filters rule in the Workspace View to view its settings in the Info View and Parameters View.
  3. In the Parameters View, click the Add a New Filter Add a New Filter button in the Components to Check Filter Parameter table.
  4. In the Components to Check Filter Parameter table, click the cell in the Components column for the newly added row.  Click the Browse BROWSE button that appears.
  5. In the Select Component Type dialog, expand Container and select User Input. Think of User Input as a single container component within your model that has properties you can create and set yourself.

    User Input Component Type
    User Input Component Type
  6. In the Requirements Filter Parameter table, click the Browse BROWSE button in the Components column for the new row. Expand Components and select User Input. Click OK.
  7. In the Requirements Filter Parameter table, click the Browse BROWSE button in the Property column for the row.
  8. In the Select Property dialog, select the Property Sets property group.
  9. Click the Property Set Name dropdown, and notice there is nothing listed to select. This is because the User Input component hasn’t been initialized yet with a value and doesn’t currently exist in the model. Click Cancel.

    User Input Component Not Initialized with a Value
    User Input Component Not Initialized with a Value
  10. Click the Return to Solibri Model Checker Return to Solibri Model Checker button button in the top-right of the application.
  11. Click the To-Do button in the top-right of the application.
    To-Do
  12. In the To-Do dialog, click Set Project Design Phase.

    Set Project Design Phase User Input Task
    Set Project Design Phase User Input Task
  13. In the User Input Task Wizard, select Schematic Design.

    User Input Task Wizard
    User Input Task Wizard

    You are now able to select the UserInput property set and the Project Design Phase property in your rules.

  14. Click File > Ruleset Manager
  15. In the Parameters View, in the Requirements Filter Parameter table, click the Browse BROWSE button in the Property column.
  16. In the Select Property dialog, select the Property Sets property group. Notice now, the Property Set Name is already set to UserInput, the Property Name is set to Project Design Phase, and the Format is set to Text. Leave the settings as they are and click OK.

    Selecting the UserInput.Project Design Phase Property
    Selecting the UserInput.Project Design Phase Property
  17. In the Operator column of the row, select One Of.
  18. In the Value column of the row, double click and select Schematic Design in the Add Values dialog and click OK. Click OK in the Edit Selected Values dialog.

    Edit Selected Values Dialog
    Edit Selected Values Dialog
  19. In the Info View, rename this rule Schematic Design.  The settings of the rule should look the same as below:

    Schematic Design User Input Checking Rule
    Schematic Design User Input Checking Rule
  20. In the Rulesets Folders View, under Rulesets Open in SMC > User Info Example, drag the Schematic Design rule onto the User Info Example ruleset listed in the Workspace View. This creates a duplicate of the already existing rule. Repeat this a third time so Schematic Design is listed three times as below:

    Duplicating the Schematic Design Rule
    Duplicating the Schematic Design Rule
  21. In the Workspace View, select the second listing of the Schematic Design rule, and in the Info View, change the Name of the rule to Design Development.
  22. In the Parameters View, in the Requirements Filter Parameter table, double click [Schematic Design] in the Value column of the row.
  23. In the Edit Selected Values dialog, double click Schematic Design and change the value to Design Development, and click OK.
  24. In the Workspace View, select the third listing for the Schematic Design rule, and in the Info View, change the Name of the rule to Construction Documents.
  25. In the Parameters View, in the Requirements Filter Parameter table, double click [Schematic Design] in the Value column of the row.
  26. In the Edit Selected Values dialog, double click [Schematic Design] and change the value to Construction Documents, and click OK.
  27. Click the Return to Solibri Model Checker Return to Solibri Model Checker button button in the top-right of the application.
  28. Click the Checking Layout tab, and click the Check button in the Checking View. We now have the parent rules that can be used as self-configuring rules by dragging other rules and rulesets on top of them. Notice in the checking window, the only rule that has an OK status is the Schematic Design rule, since it only passes the check if the User Input.Project Design Phase property has the value Schematic Design, which is what was set in the Set Project Design Phase user input task. The Design Development rule fails if the User Input.Project Design Phase property has a value other than Design Development. In the Info View of the result you see it states “User Input component(s) have wrong value. The actual value of Property: UserInput.Project Design Phase is Schematic Design. One Of [Design Development].”

    Gatekeeper User Input Parent Rule Checking Results
    Gatekeeper User Input Parent Rule Checking Results

Adding Sub Rules to Self-Configuring Rules

With our parent self-configuring rules created, we can now add the rulesets and rules that are specific to those self-configuring rules:

  1. Click File > Ruleset Manager
  2. In the Ruleset Folders View, expand the Rulesets\Architectural Rules folder.
  3. Drag the BIM Validation – Architectural ruleset onto the Schematic Design, Design Development, and Construction Documents rules. Upon placing the ruleset onto these rules, they have now become self-configuring (gatekeeper) rulesets.
    Copying Ruleset to Gatekeeper User Input Parent Rules
    Copying Ruleset to Gatekeeper User Input Parent Rules

    Select one of the Gatekeeper User Input Parent rules, and in the Info View, you’ll find four sub rule options:

    Sub Rule Options
    Sub Rule Options
    • Check all model components, if passed – If the rule passes, then its sub rules are checked on the entire model. If the rule fails, it and its subrules are removed from the Checking View.
    • Check all model components, if failed – If the rule fails, then its sub rules are checked on the entire model. If the rule passes, it and its sub rules are removed from the Checking View.
    • Check only failed components – Only components that failed the check are passed to sub rules for further checking. If all components had passed, it and its sub rules are removed from the Checking View.
    • Check only passed components – Only components that passed the check are passed to sub rules for further checking. If all components had failed, it and its sub rules are removed from the Checking View.
  4. Leave the option set to Check all model components, if passed. The rulesets should only be listed and checked for the specific Project Design Phase set as user input.
  5. Drag General Space Check onto the Design Development, and Construction Documents rules.
  6. Drag Advanced Space Check, Space Program, and Project Specific Types and Names onto the Construction Documents rule. The self-configuring ruleset is now able to self-configure based on the Project Design Phase user input:

    Self-Configuring User Info Example Ruleset
    Self-Configuring User Info Example Ruleset

Configuring the ruleset with User Input

Now that the ruleset is complete, we can allow it to self-configure by setting the Project Design Phase user input in the To-Do dialog:

  1. Click the Return to Solibri Model Checker Return to Solibri Model Checker button button in the top-right of the application.
  2. Click the Checking Layout tab
  3. Click the To-Do button in the top-right of the application.
  4. In the To-Do dialog, click the Show Complete button to reveal the Set Project Design Phase task. It is currently hidden because we already completed the task by setting the Project Design Phase to Schematic Design earlier.
  5. Click Set Project Design Phase, and set the phase to Design Development.
  6. In the Checking View, you’ll notice the ruleset has updated itself so only the BIM Validation – Architectural and General Space Check rulesets are listed. If you set the Project Design Phase property in the To-Do dialog to Construction Documents, you’ll then see all five rulesets listed in the Checking View.
    Self-Configuring User Info Example Ruleset - Schematic Design
    User Info Example Ruleset : Project Design Phase = Schematic Design
    Self-Configuring User Info Example Ruleset - Design Development
    User Info Example Ruleset : Project Design Phase = Design Development

    Self-Configuring User Info Example Ruleset - Construction Documents
    User Info Example Ruleset : Project Design Phase = Construction Documents
Advertisements
Self-Configuring Rulesets with User Input

4 thoughts on “Self-Configuring Rulesets with User Input

  1. Loek says:

    Is there a possibility to check values and compare those with user input data. Instead of predefine choises which the user can choose, i prefer an open input where the user can define a value to check with the filtered components.
    For example: We want to check the door height. I created a ruleset (SOL/230) and filtered the Components to Check. Next, the requirements should be like

    State: Include
    Component: Windows
    Property: Door Height
    Operator: Matches
    Value: User input

    Like

    1. Hi Loek,

      Currently, user input can only be in form of a list of options to pick from; so essentially, you must know what a value for that input will be. You could create a set of self-configurable rules to select a height to check, but you’d need to specify these up front, not based on the model. Then the subrules could have the checked components filters to only check doors with those same heights.

      However, a better workflow I believe would be to simply create a generic task in the ruleset, and associate a rule to that generic task that prompts the user to edit the rule parameters in order to filter the components. More information on that can be found here:
      Workspace View

      Here is an example using gatekeepers and generic tasks to check doors for a defined door operation based on their height:

      SMC Building-UserInputTest.smc

      Best regards
      John

      Like

Leave a Reply

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

WordPress.com Logo

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

Twitter picture

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

Facebook photo

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

Google+ photo

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

Connecting to %s