☐ Project Information
Project▣ Array Layout Builder
Visual Builder⚙ Configuration & Engineering Inputs
Config⚡ Live Project Summary
Auto-Updated☷ Section-by-Section Breakdown
Structural☷ Bill of Materials
Procurement| Category | Item | Part # / SKU | Unit | Base Qty | Waste % | Final Qty | Notes |
|---|---|---|---|---|---|---|---|
ⓘ Assumptions & Engineering Logic
▶Layout-Driven Design: The visual builder is the source of truth. All totals, section counts, and BOM quantities derive from the sections placed on the canvas. Rows on the canvas represent physical layout rows (North-to-South), and sections within each row are placed East-to-West.
Section Structure: Every section contains exactly 2 module rows. An 8-panel section = 4 modules/row. A 10-panel section = 5 modules/row.
Post Count: 4 posts per section (2 per module row, at each end). Simplified — real designs may add intermediate posts.
Beams: 2 per section (1 per module row).
Clamps: Mid clamps between adjacent modules in a row. End clamps at outer edges. For N panels/row: mid = (N−1)×2 per section; end = 4 per section.
Splices: 2 per section — one splice per beam for field-joined segments.
Bonding: 1 clip per panel, 1 grounding lug per section.
Footprint: Portrait → panel width = horizontal span, panel length = slope. Landscape → swapped. Section width = panels/row × horizontal span. Section depth = 2 × slope + row spacing. Row width = sum of section widths + (sections−1) × section spacing. Array depth = layout rows × section depth + (rows−1) × layout row gap. Area = max row width × array depth.
Inverter: 1 per system up to max DC input; adds by ratio if exceeded.
Waste: Applied to structural categories (clamps, splices, wire, fasteners, brackets, bonding). Not to modules, inverters, or optimizers.
Extra Hardware: +3% clamps, +5% wire management packs.
Misc Adders: 1 kit per project when enabled.
</> Developer Data Mapping Guide
▶All data lives at the top of the <script> block in labeled constants.
PANELS[] — Panel catalog: id, manufacturer, model, wattage, lengthIn, widthIn, cellType, notes.
INVERTERS[] — Inverter catalog: id, manufacturer, model, acKw, dcMaxKw, notes.
SECTION_RULES{} — BOM rules per section type ("8"/"10").
BOM_ITEMS{} — Item master: name, category, unit, sku, wasteEligible.
APP_DEFAULTS{} — Default form values.
CALC_CONSTANTS{} — Thresholds, extra hardware %, misc quantities.
layoutState[] — Runtime layout array: [{rowId, sections:[{id, type}]}].