Plans and the editor
Plans are scenes; every edit goes through a command; finishes bind or detach.
A plan is a scene
A plan is a PlanFile: a wrapper that holds one or more plan pages, each of which is a scene document. A single project can therefore carry several layouts (a ground-floor cloakroom and an ensuite, say) as pages inside one file, sharing nothing but the wrapper.
Opening a plan loads its file, migrates it to the current shape if it predates the latest version, and hands it to the editor. Autosave writes back to the same row, so a saved plan always reflects the latest state.
Commands are the only way to change a scene
Every edit, whether you make it or an assistant makes it, goes through an engine command. Nothing writes to the scene document directly.
Because geometry is derived, it is never written back into the stored document: the command changes the model, and the plan and 3D views recompute from it. This keeps edits reversible and consistent, and means the same command produces the same result no matter what triggered it.
Finish bindings: inherit or override
A plan has an optional finish, the default material for the room. Each fixture's finish is one of two things:
- Bound to the plan. The fixture inherits the plan's finish. Change the plan finish and every bound fixture follows.
- A detached override. The fixture holds an explicit value of its own and ignores the plan finish.
So a room can carry one coherent finish everywhere, while a single feature piece is pinned to a different material without touching the rest.
Inside the editor
The editor is three panes working on the open plan:
- The 2D canvas is the floor plan: draw and reshape the room shell, and move, rotate, and snap fixtures to scale.
- The inventory library lists the catalogue; place an item into the plan from here.
- The inspector edits the selected item's properties. Editable numbers go through the kit number field; read-only or derived values sit in a measurement box, not an input.
A 3D stage renders the same scene when you need to read the room in the round.