Roof layout

A React block (a whole screen) in Beamline's Manufacturing app.

The roof of a solar design. The roof in plan with every face's panels drawn as they lie under its roof type's rules (projected from the slope), each face's pitch, bearing and panel count, and the roof's total panels and size. Faces chosen together on the plan or from their chips; their pitch, azimuth and material read as words that open their editors, a value that differs between them said as Mixed with each value until one is set for all. Mounting rules for each roof type: how many panels fit on the face shown, the face drawn along its slope with the ridge, the setback dashed and measured, and the panels; edge and ridge setbacks and spacing as words that open their fields, portrait or landscape; panels across every face of that type with the system size; a face where nothing fits said and tinted.

Use it for

  • Editing several chosen items at once, mixed values said.
  • Rules by type with a drawing that follows them and a count.

Not for

Anatomy

  • faces: title, the roof's panels and kW, how many chosen; roof plan: each face with its ridge, its panels, name, pitch and bearing, panel count (lines as room allows), chosen ones outlined in ink, a face where none fit tinted; face chips; pitch, azimuth and material for the chosen faces as words opening their editors, Mixed with the values
  • rules: roof type; how many panels fit on the face shown, or none; the face drawn along its slope with the ridge, setback dashed and measured, and panels; edge setback, ridge setback, spacing as words opening their fields, orientation; panels on every face of that type and the size

States

  • none chosen
  • mixed values
  • one value for all
  • no panels fit

Keyboard

  • Tab to the face chips and Space to choose
  • Arrow keys step the pitch, azimuth and rules

Props

PropTypeDefaultDescription
defaultFaces (required)RoofFace[]—
roofTypes (required)RoofType[]—
panel (required){ w: number; h: number; watts: number; }—The panel's size in feet and its watts.
defaultSelectedstring[]—
defaultRulesForstring—The roof type whose rules open first; the chosen faces' own when they share one.
onFacesChange((f: RoofFace[]) => void)—
onRulesChange((t: RoofType[]) => void)—
classNamestring—Classes on the documented visual root; no override by default.
styleCSSProperties—Inline styles on the documented visual root; no overrides by default.
refRef<HTMLDivElement>—Receives the documented native target or imperative handle; omitted by default.
photo{ src: string; alt: string; }—A photo of the house (a drone's view), shown beside the plan and opened large on a press.

Built from

Import

import { RoofLayout } from "@beamline/roof-layout";

Get it

Roof layout is part of Beamline UI. Install the parts you need in your React app as compiled packages or editable source. Get Beamline · Connect your agent

More in Manufacturing

  • Shop floor: A workshop's shop floor at one workstation: each job is a card at its work centre with why it isn't ready said in words (parts short, or the previous…
  • Production plan: A production plan by month: each product's starting stock, forecast demand, replenishment and ending stock, every ending rolling into the next month's…
  • Production and lots: Stock made and stored, with every movement traceable. A batch of a recipe, read as a batch sheet: the recipe, batches (in halves) and day as one sentence…
  • Print scheduler: A print shop's production schedule. The week by station: each station's day holds its runs, with a load bar and minutes used against the station's…
  • Plan readiness: A solar plan on its way to a permit. The design checks (fire setback from the ridge, string voltage in the cold, roof load, eave and rake setbacks, the…
  • Design inputs: What a solar design is checked against, and what the home really uses. Code standards and site conditions (building, electrical and fire codes, wind…
  • Solar quote: A residential solar quote. The system's price at its rate per watt with adders, discounts and incentives each switched on or off: discounts come off one…
  • Electrical design: The electrical side of a solar design. The existing service set up from a named way of connecting to it (a load-side breaker or a supply-side tap), the…
  • Battery sizing: A home battery sized beside its solar. The model and how many with capacity, power and installed price; how it runs (kept full for an outage, storing…
  • Field conditions: A farm's fields and what each one's conditions are. The fields as a searchable list (each with its outline, crop, area and the layer's value, or Not…
  • Grazing plan: Mobs on a grazing rotation, on the farm's map: with a map base, its parcels are the paddocks, each filled by where it stands in the chosen mob's plan (on…
  • Run of show: One service or event plan's order, run more than once: sections and items with each occurrence's start time in its own column, each item's length dragged…
  • Sound library: A library of sounds (or any media a person auditions before using): a search by words and #tags with facets as filters, a live "3 filters · 12 results"…
  • Tag manager: Tags for one or several items at once (sounds, photos, documents). Nested tag groups are edited in place (rename, new tag), and a folded group still says…

Part of Beamline UI: polished, editable React components and complete screens for custom applications. Build your own style from any look; tokens, fonts, radii, motion; not only colours.