Page 7 · Field & Location Reference (v1.0)
The short answer. Every field, every location rule, and proof that each one feeds the 2D diagram.
← Brief 1. Form 3. Diagram 6. Locations 8. Cross Section

The complete field list — and what each one draws

Audited against the Mindhola GAD. Every new field exists because the 2D diagram or the component model needs it; nothing is captured "just in case".

1
new dropdown value
bridge_pier_type.cable_stayed
9
new fields in
Foundation Details (per support)
11
new fields in
Super Structure (per span)
0
migrations
no schema change
Section 4 — Carriage Way Details
Stored as a column on bridge_inventory. Set once at creation.
FieldTypeValuesDrives
bridge_pier_typeselect+ cable_stayed (5th option)Which SVG partial renders · which component-seeding branch runs
Section 5 — Foundation Details · per support, pile_details[i]
JSON column. This is where "which supports are pylons" lives — the key decision of the whole CR.
FieldTypeShown whenDrives in the 2D diagram
Section 6 — Super Structure · per span, super_structure_details[i]
JSON column. Decides how each span is built — and therefore which deck and girder components exist there.
FieldTypeShown whenDrives
Traceability — every element the 2D diagram draws, and what feeds it
If a row had no source field, the diagram could not be drawn from the form. None do.
Drawn elementSource field(s)Status

Three gaps found in this audit — all now fixed

1 · Cable anchor positions were a magic number

The renderer spread cables across adjacentSpanPx × 0.45 — an arbitrary fraction — while the form was already capturing cable_anchor_spacing and ignoring it. Now the first anchor sits 1.5 × spacing from the pylon and the rest step out at exactly the entered spacing.

Result: at 6.5 m spacing with 11 cables, a main-span fan reaches 74.7 m into a 150 m span — the two cantilever arms meet exactly at midspan, as the construction method requires. That correctness fell out of using the real number.

2 · Pylon leg spread was hardcoded

Leg separation was a fixed 26–30 px per shape. The legs stand at the deck edges, so it must come from total_width_of_slab — already captured. Now derived, so a 19.5 m deck and a 12 m deck draw visibly different pylons.

3 · Expansion joint positions were not capturable NEW FIELD

The GAD legend defines EJ = EXPANSION JOINT and marks P1 and P6 as EJ piers — they bracket the cable-stayed section. The form only had a bridge-level no_of_expansion_joints count with no way to say where. Added pile_details[i][has_expansion_joint], and the diagram now marks them on the deck.

This matters beyond drawing: an EJ is where deck continuity breaks, so it defines the boundaries of each continuous deck unit.

Location selection for progress update — the whole rule in one table

Location keys are unchanged from today. What changes is which components are offered at each key, derived from the two JSON columns above.

ComponentLocation keyOffered whereItem numbers
Zero regression. On a plain girder bridge every support is a pier and every span is precast-launched, so every filter passes and the offered list is byte-identical to today's. The rules only narrow things when the config says so.

Two things to raise with R&B before build starts

The GAD says its own numbers are provisional — but the form locks them

The drawing's SPECIAL NOTE reads: "levels, RL, number of piles and dimensions of structural elements are tentative and subject to change based on detail design." Meanwhile every field in Carriage Way Details is set-once and greyed out on edit. If a bridge is registered from the GAD and detail design later changes the pile counts or pylon heights, some of it cannot be corrected.

Recommendation: allow Carriage Way Details to stay editable until the bridge has its first progress entry, then lock. That keeps the existing protection (no changing structure mid-construction) without blocking the normal GAD → detail-design revision that R&B expects.

Ask for the transverse section sheet

One drawing settles three unknowns at once: the pylon shape (we've assumed H-frame), the real pylon height, and the cable count per fan. The GAD we have is plan + longitudinal elevation only, which cannot show any of them.

Published practice puts stay spacing at roughly 6–12 m for concrete decks and 10–20 m for longer steel spans; we've assumed 6.5 m, which is plausible for a 150 m RCC/PSC span but is a guess until confirmed.

Page 7 of 7 · Audited against GAD 10/22/ITD/WLR-01/1001 · STRUCTURE — Cable-Stayed Bridges · midas — Cable-Stayed Bridge