The same Simulate tab scales the analysis from one machine to a whole building. Draw rooms as blocks in a 3D scene and configure each: floor area and height, envelope conductance (UA), day/night internal gains, solar aperture (glazing × SHGC — multiplied by the weather's irradiance), and cooling/heating setpoints. Every field explains itself on hover. A run always executes the draft you see — stored buildings are a convenience, not a prerequisite.
boundary.refFeeds, the unit's what its suction carries under boundary.refLoads; the pair pins both each hour). A block that serves water instead of rooms holds a leaving-water setpoint, and a water pair may declare the loop's volume (bufferM3, a buffer tank plus pipework), which the receiving inlet then follows as a first-order lag — the loop's thermal mass. One water port may carry several pairs to different blocks — a manifold: a chiller's outlet feeding four fan-coil blocks and the outside-air unit, its inlet mixing their returns by flow (the example hotel). A machine that serves rooms must declare its supply (supplyAir): the run never detects one. A building may name the TMY city it reads best on (suggestedCity); the Simulate tab selects that year when the building is loaded, fetching it first where the account may — every example declares one, so its published figures come from its own climate. The 3D view is the editor: a machine shows every open port of its graph and a room its supply and return; click one port then another to connect (a machine outlet to a room's supply serves it, a room's return to a machine inlet declares the return, two machines' ports pair them), click a connection and press Delete to remove it, and the Connections list beside the scene shows every one — each is a fact the run reads.
Zone physics is a deliberately transparent 1R1C model: loads from envelope UA + gains against the setpoints, delivered capacity allocated proportionally to demand, and room temperatures that drift toward free-float when a system can't keep up.