> 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/blocs.md).

# BLOCS

Export Rhino® block placements for Autodesk® Revit™

**BLOCS** saves Rhino blocks to a *.beam* file: the block geometry, and the position, rotation and mirroring of every instance. In Revit, [BLOCS](/beam/beam-for-revit/blocs.md) creates or updates a family for each block and places an instance for each Rhino instance.

## Prepare your blocks

A block's name is its family name. Keep it unique: do not assign that family name to objects outside the block.

Every block instance gets a unique **Mark** when you create or copy it. BLOCS uses the Mark to update instances in Revit instead of duplicating them.

{% hint style="danger" %}
Block names with any of these characters are not exported: ``\ : { } [ ] | ; < > ? ` ~ " /``
{% endhint %}

{% hint style="danger" %}
Do not scale or skew blocks. Revit families cannot be scaled.

Rotation depends on the Revit family. Workplane-based families accept any rotation. Roofs, walls, floors, ceilings and stairs always stay vertical.
{% endhint %}

{% hint style="info" %}
Nested blocks are exploded on export. Hidden objects inside blocks are not exported.
{% endhint %}

## Export blocks

{% stepper %}
{% step %}

### Click BLOCS

Click **BLOCS** on the [panel](/beam/beam-for-rhinoceros/using-rhino-beam.md#tool-buttons).
{% endstep %}

{% step %}

### Choose how to select

* **By Block Definition**: pick block names from a list. BLOCS selects all their visible instances.
* **Pick Blocks Manually**: select instances in the viewport and press **Enter**.

<figure><img src="https://1008084047-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M20iL6J8Vf1nWgor7JL%2Fuploads%2Fgit-blob-962b11daddf3c1b862382ff66c28c7223d76bcac%2Fmock-blocs-select.png?alt=media" alt="BLOCS selection mode" width="330"><figcaption></figcaption></figure>
{% endstep %}

{% step %}

### Pick block definitions

If you chose **By Block Definition**, tick the blocks to export. The **Count** column shows how many instances each has.

<figure><img src="https://1008084047-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M20iL6J8Vf1nWgor7JL%2Fuploads%2Fgit-blob-4fdffa99bc5c64a09961cb90f30cf68dd951054d%2Fmock-blocs-list.png?alt=media" alt="Block definition list" width="380"><figcaption></figcaption></figure>

* Search the list by name.
* **Check All** and **Check None** tick or clear every block.
* **Show Block Thumbnail** shows a preview of each block. Pick the thumbnail size next to it.
* **Preview Selection** highlights the ticked instances in the viewport.
  {% endstep %}

{% step %}

### Save

Name the *.beam* and pick a **Location**, as in [BEAM](/beam/beam-for-rhinoceros/beam.md). Click **BEAM**.

<figure><img src="https://1008084047-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M20iL6J8Vf1nWgor7JL%2Fuploads%2Fgit-blob-d1d57c526dfe560f31772e2317f4c36f8e4bfcf0%2Fmock-blocs-save.png?alt=media" alt="BLOCS save dialog" width="330"><figcaption></figcaption></figure>
{% endstep %}
{% endstepper %}

Import the file in Revit with [BLOCS](/beam/beam-for-revit/blocs.md) or [BEAM](/beam/beam-for-revit/beam.md).

## Grasshopper

To export blocks from Grasshopper, use the **Export BLOCS** component. See [Grasshopper](/beam/beam-for-rhinoceros/grasshopper.md#export).
