For Autodesk Revit 2022–2026 · Part of the ArchPlug suite · archplug.com
Overview
Auto Room Dimensions generates complete interior dimensions for entire rooms — or entire floors — with a single click.
Interior dimensioning is one of the most repetitive tasks in architectural documentation. For every room you normally have to pick witness lines wall by wall, break dimension chains at every door and window, keep offsets consistent, and then redo all of it when the design changes. On a residential floor plan with dozens of rooms, this easily consumes hours per plan revision.
Auto Room Dimensions automates the whole process. It reads the actual room boundaries from your Revit model, places its own stable reference points at wall faces and boundary breaks, and creates real, native Revit dimensions along every room edge — with door and window openings automatically broken out as separate segments if you want them. Prefer a lighter look? Switch to a two-dimension summary mode that gives every room just one overall width and one overall height dimension.
Every run is a "smart update": the plugin first removes the dimensions it created previously in the target views and rebuilds them from the current state of the model. That means you can re-run it after any design change and always get clean, current dimensions — never duplicates.
The dimensions it creates are ordinary Revit dimensions using dedicated, automatically created dimension types, so they print, export, and behave exactly like dimensions you would place by hand.
Key Benefits & Use Cases
- Minutes instead of hours. Dimension a full floor — or every selected level in the project — in one click.
- Two output styles. Full boundary chains with opening breaks ("Detailed dimensions") or a minimal overall width x height per room ("Only 2 basic dimensions").
- Accurate opening handling. Door and window widths are read from the family's actual Width parameter (not an inflated bounding box), so dimension segments at openings match the real clear width — including on skewed walls.
- Repeatable. Re-running replaces the plugin's own previous output in the target views; your manually placed dimensions are never touched.
- Multi-level batch mode. Tick the levels you want in a side panel and dimension all of them at once, processed in elevation order.
- Workflow extras. Auto-place rooms in all enclosed areas ("Place rooms") and auto-tag untagged rooms ("Place tags") directly from the same window.
- Presentation control. Hide or unhide all plugin-created dimensions per view or per selected levels — useful for alternate presentation views.
- Non-blocking. The window is modeless: you can keep panning, zooming, and switching views in Revit while it stays open on top.
Typical use cases: interior dimension sheets for residential and commercial floor plans, apartment sale plans, permit and construction documentation, and rapid re-dimensioning after each design iteration.
Requirements
- Autodesk Revit 2022, 2023, 2024, 2025, or 2026
- Windows (Revit for Windows; there is no Revit for macOS)
- Part of the ArchPlug suite — installs into the shared ArchPlug ribbon tab and follows the ArchPlug theme (dark/light) and accent color settings shared by all ArchPlug tools.
The plugin works in floor plan views and dimensions placed rooms. Your model needs Revit Rooms (the plugin can place them for you — see "Place rooms").
Installation
- Close Revit.
- Run the Auto Room Dimensions
.msiinstaller and follow the wizard. - Start Revit and open a project. You will find the command in the ArchPlug ribbon tab.
- Click the Auto Room Dimensions button to open the main window.
The installer also deploys a small ArchPlug reference symbol family (a 2D detail item) used internally as a dimension anchor. If it is not yet in your project, the plugin loads it automatically on first run — no manual steps required.
User Interface Walkthrough
Main window — "Auto Room Dimensions – Choose Options"
A compact, fixed-size window that opens centered on screen (or at its last remembered position). It is modeless and always on top: Revit stays fully usable while it is open. It has no Close/Cancel button — close it with the X in the title bar or by pressing Esc. All choices are saved automatically the moment you run an action, and restored the next time you open the window.
Header (top right):
- Level Settings > — opens the Levels side panel (see below). Always clickable; whether the ticked levels are actually used depends on the level mode selected underneath.
- "(N levels selected)" — a live counter under the button showing how many levels are currently ticked in the Levels panel (e.g. "(0 levels selected)", "(3 levels selected)"). It refreshes immediately as you tick levels in the panel.
Level mode (radio buttons):
- Current level — all actions target the active view only. The active view must be a floor plan.
- All levels (selected in level settings) — all actions target the levels ticked in the Levels panel, one floor plan view per level, processed in elevation order (lowest first). If this mode is selected while zero levels are ticked, the three action buttons (Place dimensions, Place rooms, Place tags) are disabled until you tick at least one level.
This one setting governs the whole plugin: dimensioning, room placement, and tagging all follow it.
Room utilities (buttons):
- Place rooms — automatically creates Revit Rooms in every enclosed region on each target level (equivalent to Revit's "place rooms automatically" behavior), so you can dimension a model that has no rooms yet.
- Place tags — places a room tag on every placed room that is not yet tagged, in each target floor plan view. Rooms that already have a tag in that view are skipped, so it never creates duplicates.
Dimension mode (radio buttons):
- Only 2 basic dimensions — one overall horizontal and one overall vertical dimension per room.
- Detailed dimensions — full dimension chains along every room boundary, with optional splits at doors and windows.
The option that is not selected is dimmed with a dark overlay, together with its sub-options; the radio toggles themselves always remain clickable, so you can switch modes at any time.
Openings box (available with "Detailed dimensions"): a bordered group with two checkboxes:
- Doors — when ticked, wall dimension chains are split at each door hosted in the wall.
- Windows — when ticked, wall dimension chains are split at each window hosted in the wall.
Both are ticked by default. The box is dimmed (inactive) while "Only 2 basic dimensions" is selected — openings are not used in basic mode.
Offset field:
- "Offset (cm), e.g. 40 or -40:" — the distance between the room boundary and the dimension line. The unit label in parentheses follows your project's length unit (mm, cm, m, dm, in, or ft), so the value is always entered in the units you work in. Default: 40. Both
.and,are accepted as decimal separators. A negative value places the dimension line on the opposite side of the boundary (e.g. inside the room instead of outside for detailed chains). An invalid entry shows "Invalid offset value." and nothing is run.
Run button:
- Place dimensions (orange accent, bottom right; also triggered by Enter) — runs the dimensioning with the current options on the target view(s). The window stays open afterwards, so you can tweak the offset or mode and immediately re-run. The button is temporarily disabled while a run is in progress.
Keyboard:
- Esc — closes the window. If the Levels panel is open, the first Esc closes only the panel; the next Esc closes the main window.
- Ctrl+Z / Ctrl+Y — undo/redo your input changes inside the window (radio selections, checkboxes, the offset text), independent of Revit's model undo.
Levels panel — "Auto Room Dimensions – Levels"
A resizable tool window that opens next to the main window (its position is remembered between sessions). It lists the project's levels and hosts the hide/unhide controls.
- "Tick levels (Shift+click for range)" — instruction label.
- Level list — a checkbox list (column header: Level) of every level that has at least one architectural floor plan view, sorted by elevation. View templates and MEP/structural/site plan views are filtered out, so the list matches the "Floor Plans" branch you actually document from. Ticked levels are what "All levels" mode dimensions.
- Ctrl+click selects individual rows; Shift+click selects a range.
- Toggling a checkbox while several rows are highlighted applies the same check state to all highlighted rows.
- Shift+clicking a checkbox range-toggles every level between your previous click and the current one.
- The selection is saved instantly and persists between sessions and Revit restarts.
- Check all — ticks every level in the list.
- Clear — unticks every level.
"Hide / Unhide" group — controls visibility of everything the plugin has created:
- Hide all dimensions — hides all plugin-created dimensions and reference symbols in the scoped views.
- Unhide all dimensions — reveals them again.
- Scope checkboxes (mutually exclusive; exactly one is always active; the choice is remembered):
- Current view — the active view only.
- Checked levels — the floor plan views of the levels ticked in the list above.
Note: this hide scope is deliberately independent of the main window's level mode — you can dimension "All levels" but hide/unhide only in the current view, or vice versa.
Keyboard: Esc closes the panel (the main window stays open); Ctrl+Z / Ctrl+Y undo/redo checkbox changes inside the panel.
Step-by-Step Workflow
- Open a floor plan view of the level you want to dimension.
- Click Auto Room Dimensions in the ArchPlug ribbon tab. The "Auto Room Dimensions – Choose Options" window opens.
- If the model has no rooms yet, click Place rooms (and optionally Place tags).
- Choose the scope: - Leave Current level selected to dimension only the active floor plan, or - Select All levels (selected in level settings), click Level Settings >, and tick the levels to process (use Check all / Clear / Shift+click for ranges). The counter under the button confirms your selection.
- Choose the dimension style: - Detailed dimensions for full boundary chains; tick or untick Doors and Windows to control whether chains break at openings, or - Only 2 basic dimensions for a single overall width and height per room.
- Enter the Offset — the dimension line's distance from the room boundary in your project's length unit (e.g.
40; use a negative value to flip to the other side). - Click Place dimensions. The plugin removes its previous dimensions in the target views and creates the new set. In "All levels" mode, levels are processed bottom-up.
- Review the result. Adjust the offset or mode and click Place dimensions again as often as you like — every run is a clean rebuild.
- Close the window with X or Esc. All settings are remembered for next time.
Feature Reference
Detailed dimensions mode
For every placed room on the target level, the plugin walks the room's actual boundary loops (including inner loops such as shafts or columns inside the room):
- Collinear merging. Consecutive boundary segments that are collinear and connected are merged first, so one straight wall produces one continuous dimension chain instead of many fragments.
- Reference anchors. At each chain endpoint and split point, the plugin places an instance of its reference symbol family (a small 2D detail item) and dimensions between these anchors. This yields stable, mutually parallel references that work on any wall orientation, including skewed walls.
- Opening splits. For each merged segment hosted by a wall, all doors (Doors ticked) and windows (Windows ticked) hosted in that wall are projected onto the segment. The chain is split at each opening edge, producing wall-pier / opening / wall-pier sub-dimensions. Opening extents use the family's Width parameter (instance or type; several built-in and named fallbacks are tried), which is accurate even where the bounding box would be inflated by frame geometry. Openings that touch the segment end within 1 cm are merged into the end rather than creating a sliver segment; split points closer than about 2 cm to each other are merged.
- Curved boundaries. Non-straight boundary segments (e.g. arc walls) receive a single dimension between their two endpoints.
- Short segments (under ~1.5 cm) are skipped to avoid zero-length dimensions.
- Dimension type. All detailed dimensions use the "ArchPlug Detailed Dim Line" dimension type (see "Automatic dimension types" below).
"Only 2 basic dimensions" mode
Each room gets exactly two overall dimensions:
- One horizontal and one vertical dimension, placed along a flat side of the room (bottom and left are preferred; if a side isn't flat, the opposite side is used), offset by your Offset value and extended 60 cm past the room on both ends.
- The dimension references every wall the measuring line crosses — capturing both the interior and exterior face of each wall — plus every room separation line it crosses. The result reads as an overall room size including the bounding wall structure, with a witness line at every wall face along the way.
- Walls that are hidden or invisible along the measuring line in that view are ignored.
- Anchors use the same reference symbol family as detailed mode (with a tiny detail-line fallback if the family is unavailable), so the output is consistent across both modes.
- All basic dimensions use the "ArchPlug Basic Dim Line" dimension type.
- If a room's shape can't provide a flat side, the room's bounding box edges are used as fallback measuring lines.
What gets dimensioned
- Only placed rooms (rooms with an area) on the target view's level. Unplaced rooms are ignored.
- Rooms hidden in the view are still included — the plugin reads rooms from the model, not from view visibility.
Automatic dimension types
On first run the plugin creates its dimension types by duplicating one of your project's existing linear dimension types, then applies a consistent ArchPlug style: Arial text at 1 mm, a "Diagonal 1mm" tick mark (or any available diagonal tick), witness lines fixed to the dimension line, minimal gaps/extensions, and centimeter display units. The style is re-applied on every run, keeping the two ArchPlug types in sync; if you want a different look, edit the type properties in Revit — but note that plugin-managed properties are reset at the next run. Your other dimension types are never modified.
Smart update (safe re-runs)
Before creating anything, each run deletes — in the target view only —:
- existing dimensions of the plugin's own dimension type for that mode, and
- the plugin's reference symbols (identified by a marker text the plugin writes into their Comments parameter).
Nothing else is deleted: dimensions you placed manually, other annotation, and model elements are untouched. This is what makes the tool freely re-runnable after every design change.
Reference symbols
The small detail items the plugin places as dimension anchors are ordinary, printable-invisible 2D family instances tagged via their Comments parameter. Leave the Comments value as-is — it is how the plugin recognizes its own elements for clean-up, hide/unhide, and re-runs. If the family is missing from the project, it is loaded automatically from the installed ArchPlug families; in detailed mode a clear error is shown if it cannot be loaded (reinstalling the plugin restores it).
Multi-level runs
In "All levels" mode the plugin resolves one architectural floor plan view per ticked level (the first matching view), orders levels by elevation, and runs each view in its own transaction. Each level therefore appears as a separate entry in Revit's Undo history (e.g. "Auto Room Dimensions: Detailed Room Dimensions"), so you can undo levels individually.
Hide / Unhide
The Levels panel's Hide all dimensions / Unhide all dimensions buttons hide or reveal every plugin-created dimension and reference symbol using Revit's native per-view Hide/Unhide, scoped to Current view or Checked levels. Unhide finds elements even though they are hidden (hidden elements are searched model-wide and matched to their owner views).
Silent runs
Revit warnings raised during a run (e.g. duplicate-value warnings) are automatically dismissed, so a large multi-level run never stops to show warning pop-ups. Genuine errors are still reported in a dialog.
Settings persistence
Everything is remembered between sessions and Revit restarts: dimension mode, Doors/Windows, offset value, level mode, ticked levels, hide/unhide scope, and both windows' screen positions. Saved window positions are validated against your current monitors — if a remembered position belongs to a disconnected display, the window opens centered instead of off-screen. Updating the plugin does not reset your settings.
Undo
- Model changes (dimensions, reference symbols, placed rooms, tags, hide/unhide) are normal Revit transactions — use Revit's own Undo to revert them.
- Window inputs support their own Ctrl+Z / Ctrl+Y while the plugin window or Levels panel has focus, so you can step back through option changes without touching the model.
Tips & Best Practices
- Start with "Only 2 basic dimensions" to get quick overall room sizes for early design phases; switch to Detailed dimensions for construction documentation.
- Tune the offset per drawing scale. 40 (cm) suits typical 1:50–1:100 metric plans; use a smaller value for large scales, and a negative value when you want the chain on the other side of the boundary.
- Run it late, run it often. Because every run is a clean rebuild, the cheapest workflow is to not maintain interior dimensions manually at all — just re-run the plugin after each design change.
- Use "All levels" for repetitive buildings. Tick all residential levels once; the selection is remembered, so subsequent full-building re-runs are a single click.
- Untick Doors/Windows for cleaner chains on plans where opening positions are documented elsewhere — you'll get pure wall-to-wall chains.
- Room separation lines are your friend in basic mode: they receive witness lines too, so open-plan areas divided by separation lines still dimension sensibly.
- Don't edit the Comments parameter of the plugin's small anchor symbols, and avoid deleting them manually — the next run cleans them up automatically anyway.
- Keep one architectural floor plan per level tidy in your project. In "All levels" mode the plugin picks one floor plan view per level; a well-structured view list gives predictable results.
- After a run, dimensions are selectable, movable, and editable like any Revit dimension — you can drag texts and grips for final presentation without breaking anything (just remember a re-run rebuilds them).
Troubleshooting & FAQ
"No rooms found in the active view." The target level has no placed rooms. Place rooms first — either with the plugin's Place rooms button or Revit's Room tool. Rooms must be placed (have an area); unplaced rooms are ignored.
"Active view is not a Floor Plan. Switch to a floor plan, or use 'All levels' mode." In Current level mode the active view must be a floor plan. Open a floor plan view, or switch to All levels and tick levels in Level Settings.
"No levels are checked in Level Settings." / The action buttons are greyed out. You are in All levels mode with zero levels ticked. Click Level Settings > and tick at least one level (the "(N levels selected)" counter confirms it). The buttons re-enable immediately.
"No floor plan views available for the selected levels." The ticked levels have no architectural floor plan views (or only view templates / MEP plans). Create a floor plan view for those levels, or check that the views' Discipline is Architectural.
"Required family not found and could not be loaded... Try reinstalling Auto Room Dimensions." Detailed mode needs the plugin's reference symbol family, which is installed with the plugin and auto-loaded into the project. If this message appears, the family file is missing from the installation — reinstall Auto Room Dimensions.
"Invalid offset value."
The Offset field doesn't contain a readable number. Enter a plain number such as 40, 12.5 or -40 (comma decimals like 12,5 are also accepted).
My level isn't listed in the Levels panel. The panel lists only levels that have at least one non-template architectural floor plan view. Levels with only structural/MEP/site plans, or no plan view at all, don't appear. Add an architectural floor plan for that level.
Dimensions came out on the wrong side of the room.
Flip the sign of the Offset (e.g. -40 instead of 40) and re-run.
Some dimension segments at a door/window look off. The opening width is read from the family's Width parameter (instance or type). Exotic families without any width parameter fall back to bounding-box projection, which can include frame geometry. Add a proper Width parameter to the family for exact results.
Will re-running duplicate my dimensions? No. Each run first deletes the plugin's own previous dimensions and anchor symbols in the target views, then rebuilds. Manually placed dimensions and all other elements are never touched.
Can I undo a run? Yes — use Revit's standard Undo. Multi-level runs create one undo step per level, so you can revert selectively.
The Hide button says the active view is not a floor plan / no levels are ticked. The Hide/Unhide buttons follow their own scope checkboxes: Current view needs the active view to be a floor plan; Checked levels needs at least one level ticked in the list. Adjust the scope and try again.
The plugin window disappeared behind Revit / opened off-screen. The window is always-on-top and its position is screen-validated on startup, so this should not happen; if a remembered position becomes invalid (e.g. after disconnecting a monitor), the window automatically opens centered.
Does it change my existing dimension styles? No. It creates and maintains only its own two types — "ArchPlug Detailed Dim Line" and "ArchPlug Basic Dim Line". Note that manual edits to those two types are re-standardized on the next run.
Why do dimensions display centimeters when my project uses different units? The ArchPlug dimension types are styled with centimeter display units by design (the Offset input, in contrast, always follows your project units). To display other units, edit the units of the two ArchPlug dimension types in Revit after your final run.