Skip to main content

Step 7 of 16: Create Dynamic Rules for Frame Groups

B2.7: Define Positioning and Visibility View Frame Rules

Written by Alexandra Göttert

Prerequisites

  • The frame groups exist.

Steps

1.) Define a positioning rule. Position a view frame or external block dynamically using a DigiPara Liftdesigner project value from the Data tree — for example ((LD("Shaft.WIDTH")/2)*0.04)+80. In this syntax, LD(...) indicates that a numeric Liftdesigner value is referenced, "Shaft.WIDTH" is the Data tree value name, 0.04 is the scale (1/25 in this example), and the remaining arithmetic is an additional operation. Rules can be applied to view frames as well as to external blocks (.dwg).

2.) Add a view frame condition rule (Example 1). Add visibility condition rules via the condition column — for example, comparing numeric values with LD("Shaft.WIDTH")>=1000, or comparing strings (Data tree variables) with LDS("L_StandardTab.STD_DESC")="EN81".

3.) Add a view frame condition rule using a matrix (Example 2). Rule matrices are defined via the MATRIX columns. The index of the record containing the comparative Liftdesigner MATRIX Rules value must start at -1; all other columns in that row must be empty or 0. The remaining rows (index 0–n) contain the comparative values, along with the view frame / DWG references of the files to load.

4.) Understand rule syntax errors. A syntactically incorrect rule in the condition or matrix columns throws an error. For example, LDS("L_StandardTab.STD_DESC")=="EN81" (double equals) causes an error — the correct, fixed rule uses a single equals sign: LDS("L_StandardTab.STD_DESC")="EN81".

5.) Combine rules with ANDALSO and ORELSE. Combine multiple conditions in the SHFRITEM_CONDITION column using ANDALSO and/or ORELSE — for example:

  • LD("Shaft.WIDTH")=1000 ORELSE LD("Shaft.WIDTH")>1000

  • LD("Shaft.WIDTH")>1200 ANDALSO LD("Shaft.DEPTH")>=1800

  • (LD("Shaft.WIDTH")=1200 ORELSE LD("Shaft.WIDTH")>1200) ANDALSO LD("Shaft.DEPTH")>=1800

6.) Understand how the rule engine combines multiple rules automatically. Rules added across several matrix columns are concatenated with ANDALSO automatically, and mixed CONDITION and MATRIX rules are also concatenated with ANDALSO — for example, LD("Shaft.WIDTH")>=1000 ANDALSO LD("Shaft.DEPTH")>=1800 and LD("Shaft.WIDTH")<1000 ANDALSO LD("Shaft.DEPTH")<1800.

Result

The frame groups now position and show/hide their view frames and blocks dynamically, based on Liftdesigner project values — instead of always displaying the same fixed content.

Next Step

Did this answer your question?