Plugins

BimCode

Fix Level

FreeSheets & ViewsModel Health
Built into BimCode

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

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.