This tutorial has been written by our community member Mücahit Bilal Göker. MBilal is a Computational Design Technologist at Kalyon Construction Group in Instanbul.
You can follow him on Youtube or on LinkedIn.


  1. Installing Connectors
  2. Creating a Stream
  3. Adding Stream to Excel
  4. Sending Data from Excel
  5. Receiving in Dynamo

In this specific workflow, we are gonna start with installing connectors. I am gonna show you how to install Excel and Dynamo connectors.

Next step will be creating a new Speckle stream. This stream will allow us to exchange data between different platforms.

In the next step, we will add the stream we created to our Excel document.

And then, we are gonna send Sheet Names and Numbers data from Excel.

and Finally, we will receive that data in Dynamo and use it to create the Sheets in Revit.

Let's get started.

Prefer watching than reading? Here's a video too!

Create Sheets from Excel

In this tutorial, we'll create Revit Sheets from an Excel table containing Sheet Names and Numbers with Dynamo. Especially in large scale projects, creating hundreds of sheets manually just doesn't make any sense. Since we are already populating sheet names, numbers and any other data in Excel, why not use that data in Dynamo directly and automate this task. Let's just do that👇!


To follow this tutorial you'll need the following:

  • Excel
  • Dynamo (I'm using 2.10 inside Revit 2022)
  • a Speckle account (you can get one at
  • the Speckle Connector for Dynamo (install it via Manager)
  • the Speckle Connector for Excel (install via Office store, instructions)

Tutorial Files

You can access the Excel table used in this tutorial from down below👇:

Sheet Names and Numbers.xlsx
Sheet1 Sheet Names,Sheet Numbers1st Floor - Floor Plan,PRJ-AR-01-0012nd Floor - Floor Plan,PRJ-AR-01-0023rd Floor - Floor Plan,PRJ-AR-01-0034th Floor - Floor Plan,PRJ-AR-01-0045th Floor - Floor Plan,PRJ-AR-01-0056th Floor - Floor Plan,PRJ-AR-01-0067th Floor - Floor Plan,PRJ-AR-01-0071st ...
Click to download
Create Sheet (from Genius Loci) and Titleblock Types (from Rhythm) custom nodes

We are using custom components in this definition. You need to install Genius Loci and Rhythm packages. To learn more about installing custom packages in Dynamo 👉 Dynamo Primer

Creating a Stream

We'll start by creating a stream and it is really easy.

  • First, go to your Speckle server (I am using
  • Click on the friendly blue button in the top left corner.
  • Then type the name of your stream (we named our stream as Create Sheets from Excel.),
  • Give it a description (optional)
  • Click the create button.

That's it - a new stream has just been born!

Sending Data from Excel

In Excel, we just need to add the stream to our document. Just click on Add a Stream button or on the top left menu > Add stream > click on a stream to add to the document.

By default, streams are added as receivers but you can easily switch them to sender mode.

To send data from Excel, just select the range of data you want to send, click "Set range" and click on Send.

You can view your Excel data in Speckle server. This is how it will look like👇:

Receiving Data in Dynamo

Receiving data in Dynamo is very simple: You just need a Receive node, and a Stream URL as a string. When new data is pushed to this stream a notification will appear on the receive node.


⚠️ Receiving a commit and a stream are different. Make sure you copy the stream URL to have up-to-date data.


Creating Revit Elements

We received our Excel data in Dynamo. Congrats 🎉🎉! The next step will be manipulating this data and use it to create Revit elements. Lets do that🏃‍♂️🏃‍♀️!

First, we are going to Transpose this list. After that, we will use Get Item At Index node to get each list separately. Our first index will be 0 and second index will be 1. By doing so we separated our Sheet Names and Sheet Numbers from each other.

Now is the exciting part. Lets create some Sheets 🚀! For this we are going to use Create Sheet node from Genius Loci. This node expects 3 inputs. Sheet names, Sheet numbers and Titleblock Type. We have our Sheet names and numbers as separate lists. We are going to use Titleblock Types node from Rhythm for the third input. Select the titleblock type and connect it to the last input.

When we click on Run button, Voila🎊, list of sheets with appropriate names and numbers are created. Good job💪!


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.