Open core: don’t reinvent the wheel — build your fenestration software on ours.

Skip to main content

From rule evaluation to the printed cut list, a notch travels through four stages:

1. Rule evaluation  Rules engine → doNotching → doNotchingRules
   A create rule (142/143) adds a new operation; attribute rules
   (144–160, 169, 176, 298) fill it in. Operations collect on the unit.
↓
2. BOM build  for each profile line → setProfileNotchValues
↓
3. Attach & match  updateAddRuleBasedNotches → isMatch
   Only operations whose level / side / references / leaf match this
   specific profile are attached to it.
↓
4. Format  setNotchTexts → metric / imperial / fraction text on the BOM line
   (machine, distance, pattern, tool, sequence, angles, feed direction).

The “current operation” and rule sequences

While rules are evaluated, the most recently created operation is the current one;
attribute rules apply to it. So the order of rules matters — attributes must come after
the create rule and before the next create rule.

The sequence boundary (rule type 174)
Rule type 174 — Set Max Rule ID for Notch records a cutoff rule id. Attribute rules
whose rule id is greater than this cutoff are skipped for the current operation. This
lets one series cleanly define several operations without a later attribute “leaking” onto the
wrong one. Practical guidance: keep all attribute rules for an operation at rule ids at
or below the value you set in 174.