Rules, Node Types, and System Properties

This appendix covers the following topics:

Introduction to Rules, Node Types, and System Properties

This appendix lists which Model structure nodes and System Properties are valid when defining a Logic, Numeric, or Comparison Rule. For general information about System Properties, see System Properties.

Node Types and Valid System Properties when Defining Rules

When defining a rule, you specify which Model structure nodes participate in the rule. When defining a Logic Rule, Numeric Rule, or Comparison Rule, you can also specify whether a node’s System Property participates in the rule. You do this by clicking "Choose Properties" after selecting nodes from the Model structure. For example, you can contribute a value to a participating node’s runtime quantity by defining a Numeric Rule and selecting the node’s Quantity System Property. See Using Properties when Defining a Numeric Rule.

If you do not specify which System Property to use in a rule expression, Configurator Developer assigns an implicit node.property() reference, depending on the node type and the context established by the expression operator. For details, refer to the table Node Types and Implicit System Properties Used in Rule Expressions.

Node Types and Implicit System Properties Used in Rule Expressions
If the context is ... and the node type is ... Then the implicit System Property is ...
A logic expression in a rule (for example, Requires, Implies, Excludes, Negates, AND, OR, NOT, and so on) BOM, Option Feature, Boolean Feature, or Option State
  Any other type of node None (invalid operand)
A numeric expression in a rule (for example, any arithmetic or comparison operator, including +, -, *, /, <, >, ADD...TO, SUBTRACT... FROM, and so on) BOM or Counted Option Quantity
  Integer or Decimal Feature, Total, or Resource Value
  Any other type None (invalid operand)

Configurator Developer also assigns an implicit Property reference if you do not specify a System Property when creating a runtime condition or text expression. Refer to the table below for details.

Node Types and Implicit System Properties Used in Runtime Conditions and Text Expressions
If the context is ... and the node type is ... Then the implicit System Property is ...
A display condition or text expression BOM, Option Feature, Boolean Feature, Option State
  Integer, Decimal, or Text Feature, Total, or Resource Value

Note: For node types that have both the State and Quantity System Property, State takes precedence.

This section lists which nodes and System Properties can participate as:

The table Rules, Valid Node Types, and System Properties summarizes all available node types and System Properties that you can use when defining Logic, Numeric, or Comparison Rules. When reviewing the table, consider the following:

Rules, Valid Node Types, and System Properties
Node Type Logic Numeric Numeric Comparison Comparison
First Operand & Second Operand First Operand Second Operand First Operand Second Operand
any_node.Property(true/false) Yes (converted to numeric)   (converted to numeric) Yes
any_node.Property(numeric)   Yes   Yes  
Required or Optional BOM Model Yes Yes Yes Yes Yes
Required or Optional BOM Model.Options() Yes Yes     Yes
Required or Optional BOM Model.Selection() Yes Yes   Yes Yes
Required or Optional BOM Model.State() Yes (converted to numeric) (logic generation error) (converted to numeric) Yes
Required or Optional BOM Model.Quantity()   Yes Yes Yes  
Required or Optional BOM Model.MinInstances()   Yes Yes (optional BOM Model only) Yes  
Required or Optional BOM Model.MaxInstances()   Yes   Yes  
Required or Optional BOM Model.InstanceCount()   Yes   Yes  
Multiple BOM Model Yes Yes Yes Yes Yes
Multiple BOM Model.Options() Yes Yes     Yes
Multiple BOM Model.Selection() Yes Yes   Yes Yes
Multiple BOM Model.State() Yes (converted to numeric) (logic generation error) (converted to numeric) Yes
Multiple BOM Model.Quantity()   Yes Yes Yes  
Multiple BOM Model.MinInstances()   Yes Yes Yes  
Multiple BOM Model.MaxInstances()   Yes Yes Yes  
Multiple BOM Model.InstanceCount()   Yes   Yes  
Option Class Yes Yes     Yes
Option Class.Options() Yes Yes     Yes
Option Class.Selection() Yes Yes     Yes
Option Class.State() Yes (converted to numeric) (logic generation error) (converted to numeric) Yes
Option Class.Quantity()   Yes Yes Yes  
Standard Item Yes Yes Yes Yes Yes
Standard Item.State() Yes (converted to numeric) (logic generation error) (converted to numeric) Yes
Standard Item.Quantity()   Yes Yes Yes  
Optional NonBOM Model.MinInstances()   Yes Yes Yes Yes
Optional NonBOM Model.MaxInstances()   Yes   Yes Yes
Optional or Multiple NonBOM Model.InstanceCount()   Yes   Yes  
Multiple NonBOM Model.MinInstances()   Yes Yes Yes  
Multiple NonBOM Model.MaxInstances()   Yes Yes Yes  
Optional Component.MinInstances()   Yes Yes Yes Yes
Optional Component.MaxInstances()   Yes   Yes Yes
Optional or Multiple Component Model.InstanceCount()   Yes   Yes  
Multiple Component.MinInstances()   Yes Yes Yes  
Multiple Component.MaxInstances()   Yes Yes Yes  
Boolean or Option Feature Yes (converted to numeric) (logic generation error) (converted to numeric) Yes
Boolean Feature.State() or Count Feature.State() Yes (converted to numeric) (logic generation error) (converted to numeric) Yes
Count Feature Yes Yes Yes Yes Yes
Count Feature.Quantity()   Yes Yes Yes  
Option Feature.Options() Yes Yes     Yes
Option Feature.Selection() Yes Yes   Yes Yes
Option Feature.State() Yes (converted to numeric) (logic generation error) (converted to numeric) Yes
Option Yes (converted to numeric) Yes (converted to numeric) Yes
Counted Option Yes Yes Yes Yes Yes
Option.State() or
Counted Option.State()
Yes (converted to numeric) (logic generation error) (converted to numeric) Yes
Option.Quantity() or
Counted Option.Quantity()
  Yes Yes Yes  
Integer or Decimal Feature   Yes Yes Yes  
Integer or Decimal Feature.Value()   Yes Yes Yes  
Total or Resource   Yes Yes Yes  
Total.Value() or Resource.Value()   Yes Yes Yes  
Constant   Yes   Yes  

Logic Rule: First Operand and Second Operand

The following nodes and System Properties are valid participants on both sides of a Logic Rule:

The value of operands in a Logic Rule are Boolean or a Boolean Collection.

Numeric Rule: First Operand

The following nodes and System Properties are valid participants on the First Operand side of a Numeric Rule:

The value of First Operand in a Numeric Rule is Decimal.

Numeric Rule: Second Operand

The following nodes and System Properties are valid participants on the Second Operand side of a Numeric Rule:

The value of Second Operand in a Numeric Rule is Decimal and mutable.

Comparison Rule: First Operand

The following nodes and System Properties are valid participants on the First Operand side of a Comparison Rule:

The value of First Operand in a Comparison Rule is Decimal.

Comparison Rule: Second Operand

The following nodes and System Properties are valid participants on the Second Operand side of a Comparison Rule:

The value of Second Operand in a Comparison Rule is Boolean or a Boolean Collection.