Included with eligible plans — sign in to check yours
Screenshot
Fix Level
Re-ties every element in the model to the level it physically sits on,
without moving anything. When the level changes, the offset changes by the
same amount the other way, so the element stays exactly where it is while
its Level parameter starts telling the truth. It can also record that level
in a shared parameter of your own naming, colour a view by level to check
the result, and rename levels and grids in bulk. Every run is one Revit
undo step.
When to use it
A consultant's model where every duct, pipe and fitting is hosted to
Level 1 with a huge offset, so no schedule by level is any use.
A storey was inserted, or a level was deleted and replaced, and
everything above it now reports the wrong floor although nothing has
moved.
Slabs that should schedule with the storey above, or with the storey
below, depending on how your office works.
A coordination agreement freezes the constraints, but the team still
needs to schedule, tag and filter by the real level.
Checking somebody else's model before touching it: work out the plan,
export it, colour a section, and see how bad it is.
How to use
Open Fix Level from BimCode's plugin list inside Revit. The left
rail says Connected to Revit and the header shows the open project and
how many levels it has.
Choose what to work on. Start with a handful of elements you know
are wrong: select them in Revit, or click Pick in the model. Once
you trust the result, move up to This view or Whole model, and
narrow it by category if you want.
Leave the settings alone the first time. The plugin opens on The
level it stands on, measured from its underside, with a small snap
tolerance, which is the right answer for the great majority of work.
Click Work out what changes. Nothing happens to the model yet. You
get a table: what each element is on now, what it would become, and a
Moves column that must read zero on every row.
Read the table. Untick anything you disagree with. Show in Revit
highlights the rows in the model; Export writes the plan to a
spreadsheet you can send on.
Click Apply. The whole run is one Revit undo step. Ctrl+Z puts
everything back.
The screens
Fix Levels — scope, rule, preview table, apply. The main job.
Level Parameter — writes the resolved level into a shared parameter
you name, and changes nothing else. Optionally the level's elevation, its
index from the bottom and the element's offset above it as well.
Colour by Level — one view filter per level, coloured, on the current
view. The fastest way to check the work: open a section, and anything on
the wrong level is the wrong colour.
Levels & Grids — bulk renaming, always previewed: find and replace,
renumber, add or strip a prefix or suffix, or type the names by hand.
Presets — save a setup, make it the default, export it to a file,
import a colleague's.
Help — the manual, with worked examples and the traps.
Good to know
Nothing moves. After every write the element is read back and
compared with where it was; anything that drifted is undone for that
element and reported. An element with no offset to compensate with is
left alone and marked Would move it, unless you turn on Allowed to
move things.
Snap tolerance. A slab modelled 3 mm under Level 2 is on Level 2 to
everyone looking at it, but strict arithmetic sends it a storey down. The
tolerance is the band inside which an element counts as being exactly at
a level. 10 mm suits most models.
Which levels may be chosen. Building storeys only, structural only,
names that must or must not contain a word, or an explicit tick list, so
a Parapet or T.O. Steel level never catches an element.
Which constraint. Walls, columns, stairs and shafts have a bottom and
a top; everything else has one. Bottom is what you want almost always;
Both re-ties each end independently.
Left out on purpose. Elements inside model groups and in-place
families are skipped by default, because changing one instance's
constraint either fails or changes every instance. Both can be switched
on under What to leave out. Whatever was skipped, and why, is shown
above the table.
Read-only levels. Some hosted families and linked content will not
let anyone write their level. Use the Level Parameter screen for those;
it records the answer without touching the constraint.
A top constraint cannot be Unconnected on a two-level family; the plugin
checks first rather than failing halfway. Curtain panel doors and windows
can have their level reset when the curtain wall is edited afterwards, so
do this work after the wall settles. Ramps have long-standing quirks:
preview, apply alone, check.
Every run — fix, write parameter, colour, rename — is a single named
entry in the undo list. Ctrl+Z once puts the whole run back.
Create the next tool for your workflow.
BimCode is also an AI agent for Revit. Work with your model, build custom plugins, design families and create AI renderings.