Home / Guides / Room Studio
Data panelRoom Studio

Room finishes, both directions.

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.

Revit 2024–2027Works alongside Revit — modelessA set travels as one JSON
Video guideComing soon on BIMIO’s YouTube
Why Room Studio exists

The finish schedule and the model tell two different stories.

Floor Finish says one thing, the floor that is actually there says another — and nobody knows which one the fit-out drawings believed.

Revit on its own
  • Finish parameters are typed by hand, room by room — and go stale the day a wall type changes.
  • Finish floors, linings and ceilings are modelled one room at a time, thresholds and all.
  • “Which rooms are out of date?” has no answer short of checking every one.
The same model, with Room Studio
  • A named mapping set pairs your project types with finish values — both directions, one place.
  • Apply builds the construction in the real order: floor to the structure, linings on the new floor, ceiling inside the linings.
  • Analyse classifies every room — up to date, outdated, unmapped, never built — and pre-ticks the fix.
How Room Studio works · input → output

Hold the standard once. Let the rooms answer to it.

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.

Isolate:
INInput · the mapping set
The standardWhoever owns the finish standard, once
Rules: bounding type → finish value…and the type to buildTwo reading heights per wallExport as one JSON
OUTOutput · the rooms
Up to date · greyed out and unticked
!Outdated · arrives pre-ticked — Apply is the fix
Unmapped · fix the mapping, not the room
Never built · something to write or build for the first time
14
outdated rooms corrected in one transaction — floors, linings, ceilings, parameters, one Ctrl+Z

Tap Input or Output to isolate a half — the other collapses.

INThe input · the mapping set

One decision, held once — and it travels.

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.

Who does this: whoever owns the finish standard

Writes the rules once; the rooms answer to them.

The set

One decision, held once — and it travels.

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.

Room StudioBIMIO
Mapping setFit-out GB ▾Manage setsImport setExport set
Mapping sets
Rules

A rule says what a wall means — and what to build for it.

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.

New to Revit: a finish standard that reads the model's own types — instead of a spreadsheet someone retypes.
Room StudioBIMIO
Rules — Fit-out GB
✎ Edit● Enable○ Disable⧉ Duplicate✕ DeleteNew rule
#ActiveRuleLooks atWritesBuildsReadsFound
1ActiveBlockwork means paintWallWall: Paint, emulsion · Base: Skirting, MDFWall: GYP Lining 62.5Family type38 el · 14 rooms
2ActiveWet rooms tileWallWall: {Keynote}Wall: Tile Lining 40Function12 el · 6 rooms
3ActiveStructural slab → screedFloorFloor: Vinyl, sheetFloor: Screed + Vinyl 65Family type61 el · 61 rooms
Order is priority, per element: the first rule that matches a wall (or floor, or ceiling) decides that one. ▲ ▼ move the ticked rules.
Join values with/When nothing is mapped, write 
Inside a rule

A condition is ticked from what the model actually holds.

Conditions read a parameter of the bounding element — or Family type, its type name — and compare it against values ticked from a list the last scan actually found: is one of, is none of, contains, is empty. Nothing is typed, so a renamed wall type cannot rot into a rule that quietly matches nothing. Any condition or all of them. Four rows write the four room parameters; one row per ticked category names the type Apply creates.

New to Revit: rule conditions whose values are picked from the model, not typed from memory.
BIMIO · Room StudioBIMIO
Edit rule
NameWet rooms tile
Looks at
What it writes and builds
What it writes

Tick a room parameter and give it a value. Leave “from parameter” empty to write the text; fill it to write whatever THAT parameter of the element says.

Room parameterValue to write…or from parameter
Floor Finish
Ceiling Finish
Wall FinishKeynote
Base Finish

Ignored: this rule writes whatever “Keynote” says on the element. Clear that box to write a fixed text instead.

What it builds

One row per category ticked above. Leave a type empty and this rule builds nothing for it — writing parameters still works. Roof has no row: the studio never builds a roof.

WallTile Lining 40
When it applies
anyallAdd condition
OrderActiveRead on the elementCompared howValues in the model
1ActiveFunctionis one of3 values · Sanitary…
1 condition(s) · any one is enough.CancelDone
Values for “Function”BIMIO

7 value(s) the last scan found on the elements this rule looks at. Tick every one that counts.

Tick all shownClear shown
Sanitary
Shower
Wet room
Interior
Exterior
Corridor
Plantroom
3 ticked.CancelUse these
Honest reading

It reads the wall the room actually sees.

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.

New to Revit: a finish reading that sees what a person standing in the room would see.
Scan noteBlockwork 140 → GYP Lining 62.5 (500 mm)
Two heights per wall — the first wall each ray meets wins, and the correction is reported.
Two jobs

One set, two jobs — and neither does the other's work.

Parameters and Modelling are two screens over the same table and the same set. On Parameters, Apply writes Floor · Ceiling · Wall · Base Finish and builds nothing. On Modelling it builds floors, ceilings and linings and writes no parameter. Half the columns and the whole options rail follow the screen — reading options with the scan, building options with the build. A practice that wants the schedule filled and no new geometry never has to opt out of anything.

New to Revit: a finishes tool that runs as a pure parameter writer — no geometry, ever.
MappingParametersModelling
Write the room finish parameters, room by room.
Apply will: write Floor · Ceiling · Wall · Base Finish on every ticked room
already written:leave alone · refresh ours · overwrite
disagreements:report, do not guess
MappingParametersModelling
Build the finish construction, room by room.
Apply will: build the finish construction on every ticked room
Floor offset:Fixed (mm), 0 mm
Ceiling height:Room parameter, Soffit Height
Lining height:Room upper offset
Analyse reads every room in scope and writes nothing — every room is classified, and the outdated ones arrive pre-ticked.

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.

OUTThe output · the rooms

Analyse says which rooms drifted. Apply corrects them.

Nothing is written until you press Apply — and then it is one named transaction, in the order a builder would work.

Who lives this: whoever keeps the model honest

Analyse often, Apply when the drift is real.

One Apply

Built in the order a builder would.

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.

New to Revit: finish construction built room by room, in one gesture — with the build order thought through.
Room StudioBIMIO
Up to date · 61Outdated · 14Unmapped · 3Never built · 9Could not judge · 289 of 89 room(s)
RoomLevelScan foundFloor finishCeiling finishWall finishBase finish
1.04 — OfficeL01W: GYP Lining 62.5 · F: Screed + Vinyl 65 · C: —Vinyl, sheetPlasterboard, paintedPaint, emulsionSkirting, MDF
1.07 — MeetingL01W: Blockwork 140 · F: Screed + Vinyl 65 · C: —Vinyl, sheetPlasterboard, paintedPaint, emulsionSkirting, MDF
2.02 — WardL02W: Tile Lining 40 · F: Screed · !Vinyl, sheetPlasterboard, hygienicTile, ceramicCove, vinyl
2.09 — PlantL02W: Precast 200 · F: — · C: —
Analysed 89 room(s): 61 up to date · 14 outdated · 3 unmapped · 9 never built · 2 could not be judged. Outdated rooms are pre-ticked — Apply is the fix.AnalyseApply
The worklist

Five counts that are also the five filters.

The chips carry the bucket counts and are the filter: click one and the table shows only that bucket. Analyse opens the first bucket that has rooms in it, so a scope with nothing outdated never lands on an empty table. The header tick touches only what the filter left standing, never a hidden row. A value typed into one cell of a multi-row selection carries to the rest of that selection, and nowhere else.

New to Revit: counts you can click — the legend and the filter are one control.
Room StudioBIMIO
Up to date · 61Outdated · 14Unmapped · 3Never built · 9Could not judge · 214 of 89 room(s)
RoomLevelScan foundFloor finishCeiling finishWall finishBase finish
1.07 — MeetingL01W: Blockwork 140 · F: Screed + Vinyl 65 · C: —Vinyl, sheetPlasterboard, paintedPaint, emulsionSkirting, MDF
1.11 — ConsultingL01W: Blockwork 140 · F: Screed + Vinyl 65 · C: —Vinyl, sheetPlasterboard, paintedPaint, emulsionSkirting, MDF
2.02 — WardL02W: Tile Lining 40 · F: Screed · !Vinyl, sheetPlasterboard, hygienicTile, ceramicCove, vinyl
2.06 — TreatmentL02W: Blockwork 140 · F: Screed + Vinyl 65 · C: —Vinyl, sheetPlasterboard, hygienicTile, ceramicCove, vinyl
Analysed 89 room(s): 61 up to date · 14 outdated · 3 unmapped · 9 never built · 2 could not be judged. Outdated rooms are pre-ticked — Apply is the fix.AnalyseApply
Already written

A value that is already there is a decision, not a blank.

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.

New to Revit: drift resolved in either direction — the model to the data, or the data to the model.
Room StudioBIMIO
Outdated · 33 of 89 room(s)
already written:leave alonerefresh oursoverwritedisagreements:model winsparameter wins
RoomLevelScan foundFloor finishCeiling finishWall finishBase finishDirection
1.07 — MeetingL01W: GYP Lining 62.5 · F: Screed + Vinyl 65 · C: —Vinyl, sheetPlasterboard, paintedPaint, emulsionSkirting, MDFmodel → params
Analysed 89 room(s): 86 up to date · 3 outdated · 0 unmapped · 0 never built. Outdated rooms are pre-ticked — Apply is the fix.AnalyseApply
What it owns

It knows what it built — and asks about what it didn't.

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.

New to Revit: a tool that can tell its own work from yours — and respects the difference.
Finishes already modelledBIMIO
2 finish(es) already modelled in 2 room(s) do not match the rule
Nothing is touched until you choose. Your answer is written into the model, so the same element is never put to you twice.
1.12 — Store · Wall 'GYP Lining 62.5' — top 2400 mm, the rule asks 2600 mm.
2.04 — Corridor · Floor 'Screed + Vinyl 65' — offset 0 mm, the rule asks 50 mm.
Accept as they areBring all in lineLeave all aloneApply these decisions
The receipt

Apply hands back what it touched — and what it left alone.

Every Apply ends in a count of what it touched: values written, elements built, elements updated in place, and what was skipped. Skipped is broken down by cause, because in a workshared model “owned by others” is a phone call, “in groups” is a decision, and a failure is neither. The breakdown goes further — lining pieces, door gaps left open, threshold patches, doors whose facing could not be read. Cancel mid-run and the whole transaction rolls back.

New to Revit: an apply that reports what it left untouched, and why.
BIMIO · Room StudioBIMIO
i
Room StudioBuilt 47, updated 6 in place, skipped 3.
47element(s) built6element(s) updated in place3skipped
Floors: 14 built, 2 updated in place.
Linings: 31 piece(s) created across 9 room(s), 12 door gap(s) left open, 4 updated in place.
Ceilings: 2 built, 0 updated in place.
Threshold patches: 12 merged into floor outlines.
Door thresholds: 9 absorbed by this side (full wall depth, joint on the far face).
Door thresholds: 3 door(s) with unreadable facing.
Left untouched: 3 skipped (2 owned by others, 1 in groups).
OK

Both stories, one truth.

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.

← PreviousLoop