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

Skip to main content

The glass picker offers every sealed unit that (1) fits one of the series’ Glazing Thickness
bands (thickness between From and To — the imperial columns for an imperial series — and the number of
panes, unless Panes is 0), (2) has Display on (the “detailed list” tick-box shows the others), and
(3) if the series is limited to SU families, belongs to one of them. A replacement series uses its own replacement
list. The rules then do the rest: clearances, gas, spacer, beads by thickness. Glass rules:
How to set glass clearances, gas and glass-related parts; optional thickness:
Sealed units with an optional thickness.

Examples

  • 7100 (230) Glazing Thickness: 2 panes 46–53/64″, 2 panes 81–87/64″ (target 84),
    3 panes 81–87/64″. That gives about 58 units, for example SB603/CLEAR3, 2 panes,
    47/64″. 3501 uses 99999 / 696969 as “no upper limit”.
  • Rules around the glass: Sealed Units (38) sets glass supplier and gas; sub-routines 405/406 set spacers by SU type;
    beads are chosen by SU thickness: 7100 rule 1219 calls 227 “7100 PW GB”, the 3501 calls 465/265 by option
    QSU OA THICK.

Steps

  1. To offer more or fewer units: Series → Glazing Thickness tab → add or delete bands (From/To in
    both units, Panes).
  2. Make sure the sealed unit itself is set up on the Sealed Units screen with thickness in both units, panes and
    Display on.
  3. Check the glass rules: bead sub-routines and their SU-thickness tests, spacer, gas and supplier rules. A new
    thickness usually needs a matching bead rule, otherwise the item builds without beads or with the wrong ones.
  4. A different glass family may need different glass clearances (glass rules).
  5. Build an item with the new glass; check glass size, beads, spacer, gas and the Glazing station.
Watch outThe metric and imperial thickness columns are separate;
an imperial company uses the imperial ones. Some units in the example data have a wrong metric thickness (73 = 0.73 mm next to
47/64″), so a metric company would not see them. The glazing station rule (38 rule 85, 465 rule 40) routes
everything after it. No screen was found for limiting a series to SU families — ask support if you need it.
For the AI assistant: rules to check

Use read_data on the company database, read-only. Replace :series with the id of the series the user names (find it with SELECT id, description FROM series WHERE description LIKE '%7100%'). One statement only, starting with SELECT or WITH, no semicolon, at most 200 rows. The guard rejects these words anywhere, even inside quoted text or aliases: INSERT, UPDATE, DELETE, REPLACE, MERGE, UPSERT, CALL, DO, SET, CREATE, ALTER, DROP, TRUNCATE, GRANT, REVOKE, RENAME, LOCK, UNLOCK, HANDLER, LOAD, EXECUTE, EXEC — so run the recipes as written, with no extra labels. A product is the series plus every sub-routine it calls; the recipes walk that tree. They return numbers, because the company database has no rule-type name tables: translate them with the list below, and answer in shop words.

R10 — the glass list the picker will offer (imperial company; for metric use thickness,
from_thick, to_thick):

SELECT DISTINCT s.id AS su_type_id, s.stockcode, LEFT(s.description, 40) AS description, s.num_of_leaves AS panes,
s.thickness AS thick_mm100, s.thickness_imp AS thick_64ths, s.family_id
FROM su_type s
JOIN series_allowed_su_thick t
ON t.series_id = :series
AND s.thickness_imp BETWEEN t.from_thick_imp AND t.to_thick_imp
AND (t.panes = 0 OR s.num_of_leaves = t.panes)
WHERE s.display = 1
AND (NOT EXISTS (SELECT 1 FROM su_family_by_series f WHERE f.series_id = :series)
OR s.family_id IN (SELECT f.su_family_id FROM su_family_by_series f WHERE f.series_id = :series))
ORDER BY s.num_of_leaves, s.thickness_imp, s.stockcode
LIMIT 200

R7 — the thickness bands:

SELECT t.panes, t.from_thick AS from_mm100, t.to_thick AS to_mm100, t.from_thick_imp AS from_64ths,
t.to_thick_imp AS to_64ths, t.target_thick, t.target_thick_imp,
(SELECT COUNT(*) FROM su_type_by_series b WHERE b.series_id = t.series_id) AS glass_list_rows
FROM series_allowed_su_thick t
WHERE t.series_id = :series
ORDER BY t.panes, t.from_thick

R6 — rules acting on glass and beads (series and sub-routines). On 7100 it gives about 400 rows, mostly
spacer rules in 405/406, so add AND r.ruletype = one type to stay under 200:

WITH RECURSIVE tree(sid) AS (
SELECT :series
UNION
SELECT r.rulevalue FROM tree t
JOIN rules r ON r.series_id = t.sid AND r.ruletype = 9 AND r.active = 1
)
SELECT r.series_id, s.description AS in_series, r.id AS rule_no, r.ruletype, r.level, r.position,
r.rulevalue, r.rulevaluei, r.test, LEFT(r.description, 40) AS description
FROM tree
JOIN rules r ON r.series_id = tree.sid
JOIN series s ON s.id = r.series_id
WHERE r.active = 1
AND r.ruletype IN (4, 21, 24, 25, 26, 30, 43, 44, 80, 93, 94, 103, 104, 400, 401)
AND r.level IN (6, 7, 8, 21)
ORDER BY r.ruletype, r.series_id, r.id
LIMIT 200

Numbers to names. Rule type: 1 Option Choice, 2 Option Auto, 3 Option sub-routine, 4 Clearance, 5 Clearance Matrix, 6 Part, 7 Part Matrix, 8 Profile Matrix, 9 Rule sub-routine (Rule Segment), 10 Comment, 14 production line, 15 station, 19 Warning, 20 Error, 21 glass supplier, 24 SU gas, 25 SU spacer, 43/44 SU thickness, 90 assembly, 92 parent assembly. Level: 1 Overall, 2 Facet, 3 Frame, 4 Sash Type, 5 Sash, 6 Glass, 7 Glazing Bead, 8 DLO, 29 Grids, 31 Coupler, 32 Mullion, 40 Opening. Position: 1 Top, 2 Bottom, 3 Left, 4 Right, 5 Top+Bottom, 6 Left+Right, 7 All Sides, 11 WxH/Area, 13 Perimeter, 26 Unit. End cut: 1 Mitered, 2 Straight, 3 Machined. Test type: 8 Global Option, 9 Shape/M Option, 10 UD Opening (Open/Shape id), 11 Open Class (1 Picture, 2 LH, 3 RH, 4 Top hinged, 5 Fixed sash), 15 SU Type, 17 SU Thick. Sizes: metric columns are mm×100, imperial columns (ending in i or _imp) are 64ths of an inch; an imperial company (series_uom 2) uses the imperial ones.