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

Skip to main content

Each tab has its own local New / Edit / Save / Cancel / Delete buttons that act on
that tab’s records only.

What, where, who, when, why

What The nine configuration tabs behind the Series screen’s Header:
Shapes, Openings, Open/Shape pricing, Family, Coupler/Mullion, Designs, RO Adj, Glazing
Thickness, Rules — the record sets that make a series buildable and priceable.
Where Administration → OJ Setup → Product Setup →
Series → select a series → the tabs along the top (disabled until a series
is selected).
Who Product setup staff. Deep tab work (Rules especially) tends to
belong to whoever owns the configurator logic; Open/Shape pricing is often co-owned with
pricing.
When After the Header tab exists and the series ID is assigned.
Revisited whenever the supplier changes profiles, pricing, or designs, or when rules
evolve.
Why it matters These tabs are the product: the designer only
offers shapes and openings ticked here, prices come from the Open/Shape, Designs and
Coupler/Mullion records (flat or matrix), and the Rules tab carries the part-picking
logic. An unpriced opening-shape or missing design is invisible to order entry until
somebody defines it here.
Tab What it maintains
Shapes Tick the shapes this series can be built in, then
Save shapes — saving replaces the entire set.
Openings Same pattern for opening types; Save openings
replaces the set.
Open/Shape Per-series opening-shape pricing records: opening type,
pricing ($ UOM, $ Group, $ Actual Size?, flat Price or a
Matrix), dimension limits (Min $ Area, Min/Max W/H, Max Area), one
type flag (Window / Door / Entrance Door / Standard Product), and validity dates.
Name and Opening type are required.
Family Design families: supplier or made in-house, definition texts,
and an optional image.
Coupler/Mullion Coupler/mullion types: orientation (Vertical /
Horizontal / Angle), type (Divider / Coupler / Mullion), the part used, pricing (flat
or matrix, with Min Price), and validity dates.
Designs The designs of the series: family, pricing (flat or matrix),
Min $ Area, validity dates, and optional design and badge images.
RO Adj Rough-opening adjustments: Width/Height (metric and
imperial) and the Is Head flag.
Glazing Thickness The sealed-unit thickness ranges allowed in the
series (From/To metric and imperial, Panes). Add with Add Range, remove
with per-row Delete; there is no in-place edit — to change a range, delete it
and add the corrected one. From, To, and Panes are required. These ranges are also
what a build-to-suit sealed unit offers the user to choose from — see
Sealed units with an optional thickness.
Rules The per-series rules that drive part selection, pricing, and
notching. Each rule has a level (from the assembly-level tree), type, position,
condition, values, quantity/size expressions, cut & weld settings, option flags,
and validity dates. Ticking Has Test enables the Rule Tests editor for
chained And/Or tests. Rules can also be copied. Rule concepts are explained in
Part III — Rules; this tab is where they attach to the
series.

Equal glass on multi-slide doors — the Equal-glass layout group (Open/Shape)

An Open/Shape record for a multi-slide opening (Custom Slider Left / Right) carries a
Glass equalise formula and, under it, the group Equal-glass layout — deducts from
the product sheet
. With the formula and the six deducts authored, the configurator lays the
door out in one build: every pane’s glass is the formula’s cut size, the interlock centres
(where the machining is) come straight from the deducts, and whatever is left after rounding to
the cut unit goes into the lock-side sash-to-frame clearance — never below zero. Leave
any of them blank and the slower two-build equalise runs instead.

All six are in the series display unit (decimal inches on an imperial series, mm on a
metric one), the same unit the formula is written in. They are the numbers on the product’s
glass-deduction sheet, not physical stile widths:

Field Meaning
Lock-side deduct jamb face to daylight at the lock stile (the formula’s LS)
Fixed-side deduct jamb face to daylight at the fixed stile (FS)
Interlock deduct daylight to daylight across one interlock (IL); its midpoint is the interlock centre
Astragal deduct daylight to daylight across the meeting astragal (AS) — centre-meet shapes
Pocket deduct pocket wall to daylight (P, may be negative) — pocket shapes
Glass bite per side how far the glass sits into the stile; glass cut = daylight + 2 × bite (the formula’s “+1.25” is 2 × 0.625)

Example (a 7000-T series, O family): lock 5.0625, fixed 4.5, interlock 2.5893, bite 0.625, with
formula (W-(5.0625+2.5893*(NOSASHES-1)+4.5))/NOSASHES+1.25. If the panes’ clearance
rules do not match the sheet (a jamb gap the rules give as 0, for instance), the configurator
corrects the panes’ clearances to the sheet on the first build and remembers the correction for
that product.

Setting it up, step by step

  1. Open the series in Setup, go to Open/Shape and pick the multi-slide shape record
    (one record per shape family: lock/fixed, centre-meet, pocket).
  2. Write the Glass equalise formula. Only two variables exist: W (the
    frame opening width, not the outer unit) and NOSASHES. Write the deducts
    as plain numbers — profile variables are not supplied to the formula. The result is the
    glass cut size, bite included.
  3. Fill the Equal-glass layout fields with the same sheet numbers you used in the
    formula. The formula and the fields must agree: the engine recomputes the leftover from the
    fields and declines the one-build route when they disagree.
  4. Leave Equalise all glass as it is: a present formula turns equal glass on for these
    shapes by itself. The formula value is used exactly, with no rounding; the only cap is the
    frame (no frame clearance below zero, except on the pocket side).
  5. Verify on a design. In server.log a line EQ-FASTLAYOUT ... not used
    or ... FALLBACK names the reason the one-build route was skipped (no formula,
    a blank deduct, a leftover outside the sane range).

Formula by shape family

LS, FS, IL, AS, P and bite stand for the six fields above; write their values as numbers.

Family Fields needed Formula
Lock / fixed (OX, OXX, OXXX …) LS, FS, IL, bite (W-(LS+IL*(NOSASHES-1)+FS))/NOSASHES+2*bite
Lock / lock (XX, XXX, XXXX …) LS, IL, bite (W-(2*LS+IL*(NOSASHES-1)))/NOSASHES+2*bite
Centre-meet (OXXO, OXX-XXO, two packs meeting at an astragal) FS, IL, AS, bite (W-(AS+IL*(NOSASHES-2)+2*FS))/NOSASHES+2*bite
Pocket, one end (PX, PXX, PXXX …) LS, P, IL, bite (W-(LS+IL*(NOSASHES-1)+P))/NOSASHES+2*bite
Pocket, both ends (PXX-XXP) P, AS, IL, bite (W-(2*P+AS+IL*(NOSASHES-2)))/NOSASHES+2*bite

Worked example — a 7000-T glass-deduction sheet

A manufacturer’s sheet normally looks like the one below: a short table of deduct constants
at the top, then one line per configuration whose glass width is “opening width minus
the deducts that configuration crosses, divided by the number of panes, plus the bite”.
This example sheet has four tabs (2.625″ interlock or slim interlock, with or without a
top/bottom track); only the constants change between tabs, the formulas are the same.

Sheet tab LS lock stile IL interlock FS fixed stile AS astragal (OXXO) P pocket
2.625 Interlock, no track 5.0625 2.5893 4.5 8.25 -0.2969
2.625 Interlock, with track 4.6875 2.5893 4.5 7.5 -0.2969
Slim Interlock, no track 5.0625 1.4377 4.5 8.25 -0.4964
Slim Interlock, with track 4.6875 1.4377 4.5 7.5 -0.4964

Every configuration line on the sheet ends in +1.25: that is the glass bite, 0.625″
per side, so Glass bite per side = 0.625. The sheet also carries a smaller
“glass deduct” row (4.4375 / 1.3393 / 3.875); ignore it, the configuration lines use
the larger row and the +1.25 already accounts for the bite.

Reading the 2.625″, no-track tab, each line becomes one Open/Shape record. The six
fields are the constants above (LS 5.0625, FS 4.5, IL 2.5893, AS 8.25, P -0.2969, bite 0.625)
and the formula field gets the sheet’s formula with those numbers written in:

Sheet line Sheet formula Glass equalise formula (paste as is)
OX, OXX, OXXX, OXXXX (W-(LS+IL×(n-1)+FS))/n+1.25 (W-(5.0625+2.5893*(NOSASHES-1)+4.5))/NOSASHES+1.25
XX, XXX, XXXX, XXXXX (W-(2×LS+IL×(n-1)))/n+1.25 (W-(2*5.0625+2.5893*(NOSASHES-1)))/NOSASHES+1.25
OXXO, OXX-XXO, OXXX-XXXO (W-(AS+IL×(n-2)+2×FS))/n+1.25 (W-(8.25+2.5893*(NOSASHES-2)+2*4.5))/NOSASHES+1.25
PX, PXX, PXXX … PXXXXXX (W-(LS+IL×(n-1)+P))/n+1.25 (W-(5.0625+2.5893*(NOSASHES-1)-0.2969))/NOSASHES+1.25

Check with a size from the sheet: OXXX, opening width 118.5″, four panes gives
(118.5-(5.0625+2.5893×3+4.5))/4+1.25 = 26.5424″ of glass on every pane, which is the
sheet’s own figure. If the configurator shows a different number the deducts or the formula
were typed differently from the sheet.

Things to watch when copying from a sheet like this one:

  • The sheet writes I for the interlock and uses variable names; the formula
    field only knows W and NOSASHES, so write the constants in as
    numbers.
  • A negative pocket deduct stays negative: ...+P with P = -0.2969 is written
    -0.2969, as in the pocket line above.
  • One sheet line (PX) is missing the +1.25 that every other line has. Treat that as a typo
    on the sheet and keep the bite in the formula; the fields say bite 0.625 and the engine
    checks that the formula and the fields agree.
  • The sheet’s height columns (sash height = H-1.75, glass height = H-7.625 with a 1-7/8″
    roller, H-8.625 with a 3″ roller) are not part of the equal-glass width: they stay in
    the series’ ordinary sash and glass clearance rules.

Bifold doors

Bifold shapes (folding left / right / mid) are not on the formula route. The Glass
equalise formula and the six deducts are ignored for them; the configurator equalises a bifold
pack from its stile and clearance rules, driven only by the Equalise all glass flag on the
Open/Shape record:

Equalise all glass Behaviour
0 no equalising
1 equal glass across the pack (sum of glass)
2 equal sashes across the pack (sum of all sashes)

So for a bifold, set that flag and make sure the hinge-side, meet-rail and sash-to-frame
clearance rules carry the sheet’s values. There is nothing else to author.

Rules dictionaries (type_rule, type_test & friends)

These global dictionaries feed the Rules tab combos. They are seeded reference data —
the screen reads them but never writes them, and the same set serves every company.

Rule types — type_rule

Feeds the Rules tab Rule Type combo (loaded unfiltered). Each row says what a
rule does when the engine executes it; the editor reshapes the Value 1 / Value 2
fields per type.

id Name What it does
1 Option Choice Lets the user pick an option answer; Value 1 =
option id.
2 Option Auto Auto-applies an option (no user pick).
3 OptionSegment Pulls in an Options Sub-Routine; Value 1 =
the sub-routine’s series id.
4 Clearance Fixed glass/DLO clearance deduction.
5 Clearance Matrix Clearance from a matrix; the editor filters
Value 1 to matrix type 24 (⚠ no id 24 exists in type_matrix).
6 Part Adds a part to the BOM; Value 1 = part id.
7 Part Matrix Part from a matrix lookup (matrix type 15).
8 Profile Matrix Profile from a matrix (matrix type 16).
9 Rule Segment Pulls in a Rules Sub-Routine; Value 1 =
the sub-routine’s series id.
10 Comment Comment-only rule.
11 Set Wild Wildcard part matching; Value 2 =
type_part_wild_cards id.
12 set size # No direct engine reference found.
13 set depth ^ No direct engine reference found.
14 set production line Value 1 = production line id.
15 set station Value 1 = production station id.
16 set report Value 1 = report id.
17 set Delivery stage Value 1 = delivery-phase id.
18 Set Process Value 1 = process id.
19 Warning Shows a warning; blocks nothing.
20 Error Shows an error; blocks the configuration.
21 Set Glass Supplier Value 1 = supplier (partner) id.
22 Forced Option Forces an option answer.
23 Set Design Opening Size Value 1 = an RO adjustment of the
series.
24 Set SU Gas Sets sealed-unit gas 1.
25 Set SU Spacer Type Spacer for airspace 1.
26 Set Breather Tube Sets the breather tube.
27 Set Grid Code Grid part/code.
28 Set Grid Code Matrix Grid code from a matrix.
29 Set Wild Matrix Wildcard via matrix (matrix type 15 in the
editor).
30 Set Std Size Glass Removes/sets standard-size glass; the editor
hides Value 1.
31 Set Price to Option Attaches a price to an option.
32 Set NFRC NFRC rating flag.
33 Set Egress W Deduct Egress width deduction.
34 Set Protrusion Out Extra depth out.
35 Set Protrusion In Extra depth in.
36 Set Track No. Track number of the following profiles.
37 Set Frame Depth Overrides frame depth.
38 Set Draw Seq. Draw order, 0 = first.
39 Set GlassEdgeToSpacer Glass-edge-to-spacer deduct.
40 Set V Grid Matrix Vertical grid layout from a matrix.
41 Set H Grid Matrix Horizontal grid layout from a matrix.
42 Set Grid/Mullion Continuity 0 = None, 1 = V, 2 = H,
3 = V&H.
43 Set SU Thick Sealed-unit thickness + description.
44 Set SU Thick Text SU thickness text.
45 Set Airspace 1 Airspace 1 value.
80 Set Glass as Bought Out 0 = made in, 1 = bought out.
87 Set PF Mark-Up Part-family mark-up.
88 Set For Prod Stage Required for a production stage; Value 1 =
production stage id.
89 Force Base Assembly Forces the base assembly; Value 1 =
assembly part id.
90 Set Assembly Sets an assembly.
91 ——- Separator/placeholder; the editor maps Value 1 to the
adjustment types.
92 Set Parent Assembly Sets the parent assembly.
93 Set Glazed Marks glazed.
94 Set UnGlazed Removes glass / auto unglazed.
95 Force Global Assembly DB comment says N/A, but the engine
handles it.
96 + % of All Prices Above Price percentage rule.
97 + % to “None %” Above Price percentage rule.
98 Counter Counter variable.
99 Start Link Start of a link-rule group.
100 End Link End of a link group (paired with 99).
101 Set Global Assembly Sets a global assembly.
102 End Forced Assembly Ends a forced-assembly block.
103–109 Set SU Gas2, Gas3, NFRC Option 1-5 Sealed-unit gas 2/3 and
NFRC option slots.
110 Mem 1 – Set Option Stores an option in memory M1.
111 Mem 2 – Set Text Stores text in memory M2.
112 —— (Not Used) Handled by the engine despite the “Not Used”
label.
130/131 Total Add Tracks Out/In Extra tracks (e.g.
screens).
132/133 Use + Track Out/In No engine reference found.
134 Use Marked-Ups 0 = as set on family, 1 = force on, 2 = force
off.
135/140/141 —- (separator labels) Legacy machining-position
rows acting as separators.
136/137/138 Set Image Pos X / Y / Start Image positioning from a
matrix lookup.
142 Add Op Mullion Machining op positioned on the mullion /
meet-rail center.
143 Add Op Hardware Etc. Machining op not based on the mullion
center.
144–152 Set Op Pattern / PMatrix / Tool / Track / posX / posY / posZ /
Seq / + / -CM
Machine-operation parameters.
153 Set Op if Side? Side condition codes (1 = Top … 44 =
H).
154/155 Set Op If Part Ref1 / Ref2 Conditional op on a part
reference.
156 Force Add to Mullion Add to a mullion even when
unrelated.
157 Machine Pairs (boolean) Single start point for pairs.
158 Set Op on Level=? Op on level 1 = Frame, 2 = Sash, 3 =
Mullion, 4 = Meeting Rail.
159/160 Set Op. Comment 1 / 2 User-defined op comments.
161–168 Set New Process / Abbrev / ID / Station / Position / Track / Tool
/ Pattern
BOM process declarations.
169 Set Op Machine Machine id for the operation.
171–174 Set Op Repeat Start / End / Step / Last Rule Repeat
machining.
175 Reset Processing Instructions Clears processing
instructions.
176 Set Hrd Op Image Image on the operation.
177–179 Set Op EQUAL Repeat / Min / Max Step Equal-repeat
parameters.
180 Clearance Option Clearance by size option.
298 Set Op Feed Direction Feed direction 1 = clockwise,
2 = counter (v6.5 rules.feed).
299 Set Std. Op Time Standard processing time.
300 End Machining Rule range Boundary marker — the engine treats
140–300 as machining rules.
400/401 Set SU Spacer Type 2 / 3 Spacers for airspaces
2/3.

⚠ Referenced in code but missing from the table: rule types 58, 81, 85, 86, 113,
114, 115, 166, 313–317 (incl. the V/H flip types 316/317), 319, 320 exist only in the
rules engine — such types display as bare numbers in the Rule Type combo.

Positions & conditions

type_position feeds the Position combo (rows are duplicated per
series type; the full set below is series type 1):

id Positions
1–7 Top, Bottom, Left, Right, Top + Bottom, Left + Right, All
Sides
8–10 Vertical, Horizontal, V & H
11–13 W×H / Area, W+H / UI, Perimeter
14/15 Track W, Cover W (also the only series-type-0 rows; 16/17 Track H /
Cover H exist only at series type 0)
18–21 Corner/L, Intersection +, Intersection T, Square/Grid
22 none (series types 3, 4, 5 only)
23/24 width, height (series types 1, 5, 6)
25 depth (series type 6 only)
26 Unit (all series types)
27 Any Side In (series types 1, 2)

type_condition (11 rows) — the Condition combo values:

id Description Meaning
1 None No condition
2 Inside Profile/position faces inside
3 Outside Faces outside
6 |— —| c/m/g Both ends butt into coupler/mullion/grid
7 |— —* c/m/g Right end open (*), left butted
8 *— —| c/m/g Left end open, right butted
9 *— —* c/m/g Both ends open
10–13 L/T In, R/B In, L/T Out, R/B Out Left-top / right-bottom end
faces in or out

The Condition combo cascades from the chosen Position through
type_position_condition_map: positions 1–7 offer conditions 1–5, positions
8–10 offer 1 and 6–13, positions 11–13 offer 1 and 4, positions 14–15 offer 1 and 5, and
positions 18–26 offer 1 only.

Levels — type_level & type_level_tree

type_level maps a level id to its name (series-type-1 rows are the real
product levels; 902–907 are generic “Object” rows for the other series types):

id Name id Name
1 Overall 31 Coupler
2 Facet 32 Mullion
3 Frame 33 Interlock
4 Sash Type 34 Meeting Rail
5/12 Sash Leaf 35 Sash<>Sash
6/21 Glass 36 Folding
7 Glazing Bead 39 Astragal
8 DLO 40 Opening
20 Bkgrd Opening 200 SubFacet
29 Grids 400 SubSash

type_level_tree is the hierarchical tree shown in Rules → Identity &
Classification (roots Overall, Bkgrd, Divider, plus flat “All …” rows); selecting a node
writes the rule’s level and parent level. type_test_level_map holds
(test, level) pairs and filters the Rule Tests Test On combo — by level
only
, not by rule type or position.

Test types — type_test

Feeds Rule Tests → Test On, filtered per level via
type_test_level_map. Each id exists once per applicable series type
(series types in parentheses where not 1); the table is one line per id. For the levels
each test is offered at and what it reads at each level, see
Rule tests by level.

id Name Meaning
1 Width (1,2,5,6) Net width of the level, excl. weld
burn-off
2 Height (1,2,5,6) Net height
3 Length (1,4) Net length (mullions/couplers)
4 Area (1,2,5) Net area
5 UI (1,2) United inches/meters (W+H)
6 Volume (6) W×H×depth (frame) or W×H×air (SU)
7 depth (6) Series-header or profile depth
8 Global Option (1–7) Option set on all design levels; editor
shows option + answer combos
9 Shape/M Option (1–7) Shape-specific option; option + answer
combos
10 UD Opening User-defined opening type; opening-shape
list
11 Open Class Generic opening class; opening-type list
12 Shape (1,2) Shape type; shape list
13 Sash/Leaf No Sash no., top→bottom / left→right
14 Track No. Track 1 = inside-most
15 SU Type (1,2) Sealed-unit type; SU-type list
16 Grid ID (1,2) Grid type; grids list
17 SU Thick (1,2) OA glass/SU thickness
18 Divider Type Facet divider type; divider coupler/mullion
list
19 Coupler Type Coupler type; coupler list (see also
161–164)
20 Mullion Type Mullion type
21 B/B Angle Bay/bow angle
22 left/Top Opening Opening left/top of a mullion
23 right/Bot Opening Opening right/bottom of a mullion
24 Mullion Class Class of mullion; mullion-class list
25 DesignID Saved design id; design list
26 Design Family Design family; family list
27 Profile Form 1 = Straight, 2 = curved; profile-form
list
28 Grid Type (1,2) Type of grid
29–32 Glass 1–4 (1,2) Glass type per lite; SU-type glass
lists
33 Glazing Type (1,2) 0 = Unglazed, 1 = glass, 2 = SU, 3 = Insert,
4 = DoorIns
34–36 Film 1–3 (1,2) Glass films; not used by the engine
37–39 Process 1 Glass 1–3 Glass process flags ⚠ the engine’s
case bodies are empty — the test always fails
40–48 Process N Glass M Glass process flags ⚠ the engine runs
Parent Level 1–9 tests, not glass processes
49 Spacer 1 (1,2) SU spacer; editor shows a spacer-part list
⚠ the engine runs a Parent Level 10 test
50 Spacer 2 (1,2) SU spacer ⚠ the engine’s case body is empty —
always fails
51 Spacer 3 (1,2) SU spacer; editor shows a spacer-part list
⚠ the engine runs a Sequence test
52 Insert 1 Glass insert 1 id — label and behavior agree
53 Insert 2 Insert 2 ⚠ the engine’s case body is commented out —
always fails
54–56 Gas 1–3 SU gases ⚠ the engine runs Sequence 3–5
tests
57 SU Family (1,2) SU family; SU-family list — label and behavior
agree
58–61 Condition Left/Right/Top/Bot Position faces inside/outside;
condition list
62/63 No. Cols / Rows Grid columns/rows in the level
64 No. Tracks Tracks in the frame
65 No. Sashes Sashes in a slider/bifold sash type
66 BiFold Panel Type (1,2) Bifold panel type 1–9
67 No. of Glass Leaves (1,2) Lite count
68/69 Bi-Fold Panel Even / Direction Even panel / odd panel; not
used by the engine
70 Layout Layout/opening type; full opening-type list
71 No Facets Facet count; not used by the engine
72/73 Radius1/2 (1,2) Shape radii
75 RO Adj Rough-opening adjustment; RO-adjustment list
76 Date (1–6) Date test; editor shows date-range pickers
77–79 AirSpace 1–3 (1,2) Airspace sizes (engine quirk: all three
evaluate airspace 1)
80–83 Horiz. / Vert. / Radii / Spokes No. (1,2) Grid bar
counts
84 Customer Group (1–7) Partner group; partner-group list
85 OEM Company (1–7) OEM partner; OEM partner list
86 Customer (1–7) Any partner; all partners
87 User (1–7) User id; users list
88 Job Type Order type; order-type list
89–92 Control Op Above/Below/Left/Right Controlling opening of the
neighbor frame
93 Has Sash Frame contains a sash
94 Mullion Seq. Mullion sequence in the parent
95 Is Glazed Opening glazed
96 Matrix W×H (1–3) Get the result from a matrix; editor shows a
matrix lookup (family with 97/98)
97 Branch (1–3) Branch
98 Location (1–3) Location
99 MTO Part (3) Made-to-order part; MTO parts list
100–103 Has Sash Above/Below/Left/Right Boolean, no range
needed
104 No. of Non Fixed Openings Count of operable openings
105 RO Size Entered RO entered flag
106 Has Sash Current frame has a sash
107 Egress Met Egress check
108 No Openings Frame Total openings in the level
109 Tributary Size Tributary size
110/111 Left/Right Sash Pack Size Sash pack counts
112/113 Left/Right Sash Pack Even Pack evenness
114 Outer-Most Sash Sash on the outermost track
115 Glaze/Project 1 = In/In, 2 = In/Out, 3 = Out/Out, 4 =
Out/In
116 Orientation (Frame) 1 = fixed glazed out, 2 = glazed
in
119 Std. Glass in Shape Standard glass present
120/121 Top/Bot Shape 10 Top/bottom shape is 10
124/125 Left/Right Faces Divider Faces a divider
126/127 Left/Right Divider Deg Divider degrees
129 Glass Made In 0 = false, 1 = true
130–133 Glass 1–4 Thick (1,2) Per-lite thickness
134 Sum Glass Thick Sum of all lite thicknesses
140–152 Glass Attrib 1–12, Glass Std Size User-defined glass
attributes; glass-attribute lists
153 Has Grids Grids present
161–164 Top/Bot/Left/Right Coupler ID Coupler type per side;
coupler lists
165/166 Intersect L/R 0 = none, 1 = T, 2 = +
167 W>H Boolean
168 Aspect ratio W/H range
169 Row/Col No. Row/col match
170 Is Supplier (1,2,5) Is-supplier flag
171 User is a Dealer Dealer test
172 Inertia Test Inertia results
173 HAF Height above floor
174–176 M1/M2/M3 Stored memory variables
177–179 M1/M2/M3 Text Stored text variables; no engine case
found
180/181 Row 1 All Sash / All Fixed Row-1 composition
182–187 is Center/Left/Right Most (Fixed & Sash) Position
predicates
198 Route # Route number
199 Mobile App? 1 = tablet, 0 = normal
200 Level Level test; no engine case found
201–222 Parent 1–22 Parent-level tests; no engine cases — the
runtime handles parents via tests 40–48
225 Sequence Shape/mullion sequence
226–247 Sequence 1–22 Per-slot sequences; no engine cases — the
runtime uses 51–57 and 225
249–254 Any UDOp @ Row 1 / Last Row / Col 1 / Last Col / L/T /
R/B
User-defined opening ids at the edges
258–261 Parent Cond. Left/Right/Top/Bot Parent condition
262/263 Parent No. Cols/Rows Parent grid dims
306 Insert ID Glass/SU insert id
350–353 Top/Bot/Left/Right Inside Profile side faces
none-shape
354 Weight Assembly weight
355 Op Feed Direction 1 = clockwise, 2 = counter

⚠ Cautions on test types:

  • Ids 37–56 — DB vs runtime conflict (verified against the engine’s case bodies):
    the database labels 37–48 as glass process flags, 49–51 as spacers, 53 as Insert 2
    and 54–56 as gases — but the engine actually runs Parent Level 1–9 tests for 40–48,
    Parent Level 10 for 49, a Sequence test for 51 and Sequence 3–5 for 54–56, while
    37–39 and 50 are empty cases and 53 is commented out, so those tests always fail.
    Only 52 (Insert 1) and 57 (SU Family) do what their label says. The
    screen’s editor follows the database labels, so avoid this range except 52/57 until
    the dictionary is reconciled.
  • Engine-only ids: 74, 117/118, 122/123, 311, 322/323 exist in the rules engine
    but have no dictionary row — they cannot be picked from the Test On combo.
  • Combo-only ids: 177–179, 200–222 and 226–247 are offered in the combo but have
    no engine case — a rule using them never fires.