Reference chains appear in the formula for a Rule and are our way of getting access to the value of another Rule when we are calculating the Rule’s value.
The syntax for referencing a Rule from the current part is simply:
this.<Rule Name>
For example, referencing the Length of the table from the Width Rule would be
this.Length
There are two ways to reference down the tree. The syntax for the first way is:
this.<Child group name>.<childname><index>.<Rule name>
So, for example, the width of the TableTop would be
this.TableTopGroup.TableTop0.width
Alternatively, you can do this:
this.<Child group name>.children[<expression for index>].<Rule name>
So, for example:
this.TableTopGroup.children[0].length
NOTE: In the place of 0, you can have a expression. This is extremely useful for determining which Child to reference based on a Rule.
To go further down the tree from the root:
this.Table.LegPairGroup.LegPair0.LegGroup.Leg0.width
You can use .parent to go one level up.
<discussion of good vs bad referencing>