::: tip Prerequisites
To follow along with this tutorial, you will need to register with Speckle and install the required connectors. It takes less than 3 minutes!

For a comprehensive overview of these connectors, check our docs!


This tutorial uses Rhino 7 and any supported version of Revit - check that you have the Speckle 2.0 connectors installed for these applications. Then, download the Rhino 7 file for this tutorial here. We'll walk through each section showing you how to assign Rhino BIM tags to regular geometry by using either our Speckle 2 toolbar, or typing the commands directly in the command line!

The Speckle 2 toolbar
  1. Open the Rhino file. The model is organized into layers for each section of the model we will be sending.
  2. Pull up the Rhino Desktop UI by clicking the blue Speckle button on the toolbar, or by typing Speckle in the command line.
  3. Open a new Revit file, and open our Revit connector, which can be found in the Add-ins ribbon .

Send Context Geometry as Breps

Let's send our first stream! Since we won't be sending the context geometry as families, the next steps are just a warm up (with some fun layer filtering action):

  1. Create a new stream, name it Context and check that it is on Sender mode. If not, click the arrows on the top right corner to toggle between the two modes.
  2. Click the blue Objects button and select Set/Edit Objects Filter from the dropdown.
  3. From the Layer filter tab, select Context::Buildings and Leadenhallish:Substructure and click Set Filter.
  4. Click Send on the Context stream card.
  5. In Revit Desktop UI, click the blue Add a stream button on the bottom. Add the Context stream by clicking the arrow next to the stream in the popup window.
  6. Click Receive on the stream, and watch the geometry come in as generic models.

Overall, not a bad start - now let's do some serious sending!

Send Ground Floor Geometry with Walls, Floors, and a Facewall

For the ground level of our building, we're going to send geometry as a mix of walls, floors, facewalls, and generic models for elements (like ramp surfaces) that are not currently supported.

Let's try using the Automagic ⚡ method, which automatically decides which schemas to apply to your selected geometry based on object and layer names as well as geometry type. Let's test this out and see which geometries were successfully assigned a schema:

  1. Lock the context layers you sent from the previous section, and hide all layers except for Leadenhallish::Ground Floor for ease of selection.
  2. Select the yellow BIM Elements > Automatic button on the Speckle toolbar, or type ApplySpeckleSchema in the command line - notice that the Automatic command option toggle is by default set to On.
  3. Select all objects in Leadenhallish::Ground Floor and hit Enter to finish the command.
  4. Now click through the geometry and check which pieces have been assigned a Speckle schema by navigating to the Object > Properties > Attribute User Text panel.

You should see a <SpeckleSchema,Floor> key value pair in the attribute user text panel of any planar horizontal surfaces on the ground floor. However, the planar vertical surfaces were not assigned a schema, even though they should be walls: this is because the automagic method picked up the word Floor in the layer name and only tried to assign the Floor schema to all the selected objects! Let's manually set a wall schema for our vertical surfaces:

  1. Select the vertical surfaces on the Leadenhallish::Ground Floor layer.
  2. Select the yellow BIM Elements > Wall button on the Speckle toolbar, or type CreateWall in the command line, and hit Enter.
  3. Check the Attribute User Text panel and you should see a <SpeckleSchema,Wall> entry now!
  4. Repeat steps 1-3 for the curving surface on the ground floor, this time selecting  BIM Elements > FaceWall or typing CreateFaceWall instead.

Create a new stream, name it Ground Floor and send all geometry from the Leadenhallish::Ground Floor layer. In Revit, receive this stream and any objects that were assigned a schema will be converted as default Revit families.

Send the Core Brep as Walls and Floors

Next, we'll send try to send the core geometry as Wall and Floor surfaces.

  1. Lock the previous layer and unhide the Leadenhallish::Core layer.
  2. Select all geometry - notice that the core is modelled as a single brep.
  3. Try to apply schemas automatically with the ApplySpeckleSchema command or the BIM Elements > Automatic button on the Speckle toolbar.
  4. No schemas were assigned to the brep! We need to explode it first into surfaces: select the brep and type Explode in the command line.
  5. Now try applying schemas again. Voila, floors and walls were assigned!
  6. Create a Core stream and send the geometry to Revit

Send the Floor, Slabs and Truss to Complete the Model

To finish off our model, let's send the floor slabs and truss with the automagic method. We don't need to worry about missing schemas in the Leadenhallish::Floor Slabs layer since it only has horizontal surfaces, and the truss curves in Leadenhallish::Structure sublayers will be intelligently picked up as either Column or Beam objects!

  1. Lock the previous layer and unhide Leadenhallish::Structure and select Leadenhallish::Floor Slabs. Select all containing geometry.
  2. Apply schemas automatically with the ApplySpeckleSchema command or the BIM Elements > Automatic button on the Speckle toolbar.
  3. Cycle through some of the truss members to look at their assigned schema. Lines with < 45 degree deviation from vertical are assigned as columns, while all others are assigned as beams.
  4. Create a new Floors and Truss stream and send to Revit. Go to Revit and receive it - our Leadenhall lookalike building is now complete!


Detailed information on the Rhino schema commands used in this tutorial can be found under the Rhino BIM section in the Rhino User Guide. This feature is an early prototype, so we currently do not offer control over specific family types during schema assignment, except when sending adaptive components: ⚠ all geometry with schemas are assigned a default type upon conversion into Revit.

::: tip

To remove schemas applied during this tutorial and start over:

  1. Type RemoveSpeckleSchema in the command line, or use the BIM Elements > Remove button on the Speckle toolbar
  2. Select objects to remove schemas from
  3. Press Enter - Speckle AUT strings are now deleted from all selected objects!



We hope you enjoyed this tutorial and found it useful!

Speckle is an Open Source project and we really ❤️ feedback so, if you have any questions, comments, critiques, or praises please let us know on our community forum.