Revit's four room finish parameters and the finish construction itself are the same decision written twice — and they drift apart. Room Studio holds the decision once, as a named mapping set: read the construction and write the parameters, or build the construction from the room. Analyse says which rooms have drifted; one Apply corrects them.
Floor Finish says one thing, the floor that is actually there says another — and nobody knows which one the fit-out drawings believed.
Room Studio has two halves. The mapping set holds the finish standard — that is the input. Analyse reads every room against it and Apply corrects the drift — that is the output. Here is the loop, top to bottom.
Tap Input or Output to isolate a half — the other collapses.
A set pairs your project's types with finish values, in both directions. Name it, duplicate it per phase or per client — and export it whole.
Mapping sets pair your project types with finish values in both directions. They are named — Fit-out GB, Shell only — duplicable, and exported and imported as one JSON that carries the rows, the options and the rules together, ready for another machine or the next project.
Ordered rules read the bounding element — its type name, or any parameter — and write any of the four room finish parameters: a fixed text, or whatever a parameter of the element says, so one rule can carry a whole keynote catalogue. The same rule names the type to build. Order is priority per element: the first rule that matches a wall decides that wall — and two rules matching two different walls both write, joined by the set's separator.
| # | Active | Rule | Looks at | Writes | Builds | Reads | Found | |
|---|---|---|---|---|---|---|---|---|
| 1 | Active | Blockwork means paint | Wall | Wall: Paint, emulsion · Base: Skirting, MDF | Wall: GYP Lining 62.5 | Family type | 38 el · 14 rooms | |
| 2 | Active | Wet rooms tile | Wall | Wall: {Keynote} | Wall: Tile Lining 40 | Function | 12 el · 6 rooms | |
| 3 | Active | Structural slab → screed | Floor | Floor: Vinyl, sheet | Floor: Screed + Vinyl 65 | Family type | 61 el · 61 rooms |
Walls are read by ray, at two heights — 500 mm catches the dado, 2000 mm the paint above it — so the scan reports the lining standing in front of the structure, and the real wall above a low upstand, not the blockwork behind them. Every correction is reported, never silent. Floors and ceilings come from a ray grid over the room; a roof answers for the ceiling only where the room has none. What the scan cannot resolve, it counts — it never drops it quietly.
Up to date fades back. Unmapped points at the set, not the room. A room the scan could not judge is never passed off as clean.
Nothing is written until you press Apply — and then it is one named transaction, in the order a builder would work.
Floors first, to the structural boundary, running through door thresholds — interior absorbs, exterior absorbs, or wall centre, per door. Linings seated on the new floor's top. Ceilings from the re-read, lining-bounded boundary, so the ceiling-versus-lining clash cannot exist. Parameters written last, honouring every value you edited in the table. All of it one named transaction — and the window stays open and rescans.
| Room | Level | Scan found | Floor finish | Ceiling finish | Wall finish | Base finish | ||
|---|---|---|---|---|---|---|---|---|
| 1.04 — Office | L01 | W: GYP Lining 62.5 · F: Screed + Vinyl 65 · C: — | Vinyl, sheet | Plasterboard, painted | Paint, emulsion | Skirting, MDF | ||
| 1.07 — Meeting | L01 | W: Blockwork 140 · F: Screed + Vinyl 65 · C: — | Vinyl, sheet | Plasterboard, painted | Paint, emulsion | Skirting, MDF | ||
| 2.02 — Ward | L02 | W: Tile Lining 40 · F: Screed · ! | Vinyl, sheet | Plasterboard, hygienic | Tile, ceramic | Cove, vinyl | ||
| 2.09 — Plant | L02 | W: Precast 200 · F: — · C: — |
Three write modes — leave alone, refresh ours, overwrite — with every overwrite visible before it happens. And when a typed value disagrees with what the model says, a per-room chip flips the direction: model wins rewrites the parameter, parameter wins retypes the studio's own construction in place, so tags and annotations survive.
| Room | Level | Scan found | Floor finish | Ceiling finish | Wall finish | Base finish | Direction | ||
|---|---|---|---|---|---|---|---|---|---|
| 1.07 — Meeting | L01 | W: GYP Lining 62.5 · F: Screed + Vinyl 65 · C: — | Vinyl, sheet | Plasterboard, painted | Paint, emulsion | Skirting, MDF | model → params |
Provenance lives in extensible storage, never in Comments. Finishes modelled by hand that match the rules are adopted quietly; the right-type-wrong-geometry ones — a lining stopped short of the rule's height, a floor at the wrong offset — are put to you once: accept them as they are, bring them in line, or leave them alone. The answer sticks in the model, so nobody is asked twice.
Room Studio ships on the Data panel of the BIMIO tab — open it beside your model, Analyse, and see which rooms have drifted. Revit 2024–2027, full trial, no card.
Blockwork 140 → GYP Lining 62.5 (500 mm)