zLevelTag decides which level an object belongs to from the Z height of the center of its bounding box, and writes that into the object’s custom properties as a tag. It creates no layers, no groups and no blocks, and the tag does not change anything else about the object.
Quick start
Run zLevelTag. The first time you open it in a document that has not been set up, a setup wizard (Back / Next / Finish) appears, with at most three steps. The order is Excluded Objects, Absolute Ground Elevation and Levels, and only the steps not yet done are shown. Two large numbers at the top of the window always show Objects (objects that will be tagged) and Excluded (objects already excluded), and they update as you pick excluded objects. The steps are described below by name, with the step order in parentheses:
Absolute Ground Elevation (step 2): press Pick Point and pick the point in the viewport where the real ground is. Its world Z becomes 0’-0” for every level. If you do not pick, world Z = 0 is kept.
Levels (step 3): fill in the number of levels and the FFH (floor-to-floor height) of each of Penthouse, Typical, Ground and Basement. Levels = 0 for every group means nothing is generated. The relative elevation range of each group is shown live on the right. Click the top +∞ or the bottom -∞ to switch between infinite and a specific elevation. Levels are really created only when you press Finish (Back and Next do not create them).
Excluded Objects (step 1): use Pick Objects to choose terrain, site, large meshes and other heavy, unrelated objects so that they do not take part in level tagging, which avoids freezing on a large model. If you pick nothing and press Next, you are asked to confirm (the default is No, which keeps you on this step).
The wizard does not scan all objects while it runs, and scans once when it ends. Closing the window (X) skips the remaining steps and keeps what you finished. For a step you do not need, press Next (for example, in Step 1, if you do not pick a point and press Next, world Z = 0 stays). The Pick Point and Pick Objects buttons are at the bottom left of the window, on the same row as Back and Next. The wizard appears automatically only once per document.
Later you can use Generate Levels to create a set of levels in one go, or Add Level to add them one by one (the defaults continue the name and elevation of the highest level).
Press Rescan. The tool classifies all visible objects in the document into levels by the Z of their bounding-box center.
When needed, mark some objects as Excluded (they never take part in classification).
To organize the tagged objects for real, use Group by Level, Block by Level or Layer by Level in EXPORT BY LEVEL.
The window
Base row at the top: shows the current Z origin (Absolute Ground Elevation).
Level table: each row has LINK (the tree line on the left) / Name / Elevation / FFH (floor-to-floor height) / OBJ (number of objects) / Vis / Iso / Zoom (selects and zooms to the objects of that level). The list is always sorted by elevation. You cannot reorder it by dragging, and there is no delete icon in a row: delete with right-click, Delete, or the Del key. The Elevation column shows the relative elevation (abbreviated) by default. Right-click the Elevation header to switch between relative and absolute elevation.
LINK tree line: the first column joins neighboring levels that meet end to end with a vertical line, meaning they are “bound” (the bottom of the upper level always equals the top of the lower level). Click the connection point between two levels to bind or unbind. The effect passes upward only: when you change a level’s Top, the levels bound above it shift together, each keeping its own floor height, and the levels below are never changed.
Row actions: click to select, Ctrl+click to toggle, Shift+click to select a range, and click an empty area or press Esc to clear the selection. Double-click a name to rename it. Click an FFH value to change the floor height and click an Elevation value to set the elevation of that level. Right-click menu: Rename, Delete | Edit Level… | Show, Hide, Isolate, Zoom to Objects | Select All, Invert Selection (grouped by divider lines. Show and Hide are two separate items, not a toggle).
Excluded mini table: in the Other area below the level table, the Excluded row (+ / - pick buttons and Zoom). There is no Unassigned row and no count of unassigned objects.
SETUP buttons: Set Ground Elevation (pick a point as the real ground elevation, right-click to reset to world Z = 0), Generate Levels (create a stack of levels in one go), and Clear Level Tags (a complete reset: deletes every level definition, every object’s level tag, the ground elevation and every Excluded mark, with a confirmation. After this, opening zLevelTag again runs the full three-step wizard).
Toolbar button: right-click the zLevelTag icon = Clear Level Tags (the command zLevelTagClear, which needs no panel).
Top row: the Auto Update slide switch on the far left (state), and the Absolute display on the far right.
Bottom button row: Update Tags on the left (re-tags every object by the current level ranges), and OK / Cancel on the right. Auto Update is On by default, and its state is remembered between openings. Turning it from Off to On updates once at once. Update Tags can also be pressed while Auto Update is on, to catch an update that was missed.
EXPORT BY LEVEL: As Group, As Block (note: this deletes the original objects and replaces them with block instances) and As Layer (moves objects under a level name::original layer name layer tree, and the tags stay).
Dialogs
Generate Level Stack (shared by Generate Levels and wizard step 3): creates “L1” to “LN” in three bands, Ground, Typical and Penthouse, plus an optional below-ground band “B1” to “BM”. Each band has LEVELS (the number of levels, 0 means none) and FFH (FT) (the floor height). On the right, ELEVATION RANGE shows the range relative to the Absolute Ground Elevation live, and below it the total number of levels and the total height above and below ground. The top end of the highest level and the bottom end of the lowest are specific elevations by default, and a click turns them into +∞ / -∞ (no limit at that end), and another click restores them.
Edit Level (right-click, Edit Level…, or click an FFH or Elevation value): change the Bottom Elevation and Top Elevation of an existing level (a decimal in feet such as 10.5, or feet and inches such as 10’-6”, with empty meaning no limit). The dialog shows Floor-to-Floor live. The linking is decided by the LINK tree line in the first column and passes upward only. Changing the Top shifts the whole chain of levels bound above it by the same amount, each keeping its own floor height. Changing the Bottom only unbinds that level from the one below, and the levels below are never changed. Unbound levels do not move. Click a connection point on the tree line to bind or unbind. If two levels do not meet end to end, before binding you are told “this will shift the level by X” and asked to confirm (the default is cancel), and after confirming the upper level (and the levels bound above it) snap to it and are bound. Levels made by Generate Levels are bound by default, an Add Level that sits right on the highest level is bound by default, and levels already in older documents are unbound by default. If the new range overlaps other levels you are asked to confirm. The whole edit can be undone with one Ctrl+Z.
Add Level: one row: Level (the name), Height (ft), Place (Above / Below / Inside), Relative To (which level to refer to) and a Mezzanine checkbox. A new level is no longer typed with two absolute elevations. It is placed relative to an existing level: Above puts its bottom on the top of the reference level, Below puts its top on the bottom of the reference level, and Inside adds a mezzanine at the middle height of the reference level (the default height is half of the reference level). Inside and the Mezzanine checkbox are linked. The small text below shows the range of the new level live. If the position is already taken, it is inserted: that level and the levels bound above it move up, and the levels are renumbered in order. By default it continues from the highest level, adds 1 to the number at the end of the name, and uses the same height as the reference level. When there are no levels yet, only 3 items are asked: Level, Bottom Elevation and Height.
How the settings work together
Excluded objects never take part in Rescan classification until you un-exclude them by hand.
A hidden object automatically loses its level tag (unless it is hidden only because the Vis switch of its level is off).
Layer visibility and object visibility are two independent axes. If the layer itself is not visible, the tool skips the object entirely and does not add the object’s own hidden state on top.
When the ranges of several levels overlap, an export uses the first level in the current display order as the main owner.
Good to know
Levels are classified by the Z of the bounding-box center, not by the bottom Z.
Every add, delete or change of a level triggers a full document rescan at once, so you do not have to press anything.
As Block deletes the original objects and cannot be undone by the tool itself. You are asked to confirm only when a level name conflicts with an existing block name.
Clear Level Tags (in the SETUP group, or right-click on the toolbar icon) is a complete reset: level definitions, level tags on objects, the ground elevation and the Excluded marks are all cleared (with a second confirmation, default No).
The wizard deliberately does not scan while it runs. The first time you open it, nothing is scanned across all objects. One scan happens when the wizard ends, so you can exclude terrain and other heavy, unrelated objects first and avoid freezing on a large model.
The name column has a fixed width and cannot be dragged.
While the panel is open, it by default listens to manual Show / Hide, layer switches, new objects and geometry transforms in the viewport and rescans silently and live, but this automatic rescan makes no separate Undo record. You can turn this automatic behavior off with the Auto Update slide switch at the top (one master switch for all four kinds of events, you cannot turn off just one). This helps on a big scene, or when frequent manual edits make the rescan slow. Turning Auto Update off does not disable the Update Tags button. You can still press it at any time.