> For the complete documentation index, see [llms.txt](https://wiki.mksdtech.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wiki.mksdtech.com/beam/beam-for-rhinoceros/levels.md).

# Levels

Create levels and check which level each object belongs to

A level is a named horizontal plane at a set height, like a level in Revit or a storey in IFC. BEAM uses levels to place elements in Revit and to build the storey structure of an IFC file.

## Manage levels

Click **L** on the [panel](/beam/beam-for-rhinoceros/using-rhino-beam.md#tool-row) to open **Levels**.

<figure><img src="https://1008084047-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M20iL6J8Vf1nWgor7JL%2Fuploads%2Fgit-blob-1588298f253da30615e8867e6d90c1857a027d1e%2Fmock-levels.png?alt=media" alt="Levels dialog" width="480"><figcaption></figcaption></figure>

| Control                | What it does                                                                                      |
| ---------------------- | ------------------------------------------------------------------------------------------------- |
| **Add**                | Create a level with a **Name** and a **Height** in model units. Names and heights must be unique. |
| **Edit**               | Change the selected level.                                                                        |
| **Remove**             | Delete the selected levels.                                                                       |
| Search icon on a row   | **Select all objects on this level**.                                                             |
| **Show**               | Draw the level planes and names in the viewports.                                                 |
| **Colour**             | Colour every object by its level, with a legend in the viewport.                                  |
| **Bake**               | Add the level planes to the current layer as real geometry.                                       |
| **Size** **X** / **Y** | The size of the drawn level planes.                                                               |

Click **OK** to keep your changes, or **Cancel** to discard them.

{% hint style="success" %}
Turn on **Colour** before an IFC export. Each colour shows the storey the object will be exported to, so misplaced objects stand out.
{% endhint %}

## Assign a level

Objects take a level automatically. To set one yourself:

1. Select the objects or block instances.
2. On the panel, open the **Instance** tab under **Family Parameters**.
3. Pick a level in the **Level** dropdown.

Pick **\<Automatic>** to go back to the automatic level.

<figure><img src="https://1008084047-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M20iL6J8Vf1nWgor7JL%2Fuploads%2Fgit-blob-4ae4470d33c605971aba64bc57af8faceea48efd%2Fmock-panel-instance.png?alt=media" alt="Level dropdown on the Instance tab" width="295"><figcaption></figcaption></figure>

## How BEAM picks the level

With **\<Automatic>**, BEAM uses the closest level **below** the object:

* For a block instance, it checks the insertion point.
* For other geometry, it checks the lowest corner of the bounding box.

The result differs by target.

{% tabs %}
{% tab title="IFC" %}
Every element is placed in a storey, both blocks and loose geometry. A level set in the panel wins. Otherwise BEAM uses the automatic level.
{% endtab %}

{% tab title="Revit" %}
Only block instances get a level, whether you import them with [BEAM](/beam/beam-for-revit/beam.md) or [BLOCS](/beam/beam-for-revit/blocs.md). BEAM matches levels **by name**, so the Rhino level name must exist in the Revit model. If it does not, BEAM uses the closest Revit level below the insertion point.

[URSA](/beam/beam-for-revit/ursa.md) places point-based families on the closest Revit level below each point.
{% endtab %}
{% endtabs %}

## Levels from Revit

[RAY](/beam/beam-for-rhinoceros/ray.md) can bring Revit levels into Rhino. See [Import properties](/beam/beam-for-rhinoceros/ray.md#import-properties).

## Levels in Grasshopper

Create, find and assign levels with the [Grasshopper Levels components](/beam/beam-for-rhinoceros/grasshopper.md#levels).
