Levels from Excel

3 min read

This tutorial explores how you can translate levels from Rhino to Revit via Excel. While this may be overkill for smaller projects, it may prove to be useful for high rise towers which were initially conceived within Grasshopper.

Step 1: Generate levels in Grasshopper

The first step is to generate a series of level names and elevations within Rhino/Grasshopper. The example below uses a series component to create the number of levels in the project. This list is then multiplied by the typical floor-to-floor height to get the elevations. If you’re building has atypical floor-to-floor heights, extract the Z-coordinates of the defining geometry which represents the levels. Next, we’ll use the concatenate component to name the levels. Both the elevations (number) and level names (string) can then be flattened and fed into the Lunchbox ‘ExcelWrite’ component.

Step 2: Export to Excel

Depending on which ExcelWrite Component you use, you will need to modify the definition. If you use the legacy component, you’ll need to ensure Excel is open first before activating the Boolean button (or toggle). Using this method, you can set the WriteHeading input to ‘False’ and the RowStart to ‘0’.


If you use the new ExcelWrite component, you’ll likely need to use the Path Mapper component to change the data structure as shown below. The new component doesn’t require Excel to be open before activating the Boolean button (or toggle), but you will need to define the file path. This component will always export headings.

Both options should create an Excel file which looks something like this. The only difference will be whether the headings are exported or not.


Step 3: Import using Dynamo

Finally, we’ll use Dynamo to read the excel spreadsheet using the ‘Levels.FromExcel‘ node found in the Parametric Monkey Dynamo package. Simply wire up a File Path node and two input nodes which represent the column numbers to read for the level name and elevation values. Remember that like most scripting software, Dynamo starts counting from 0, not 1. So column A (level name) is 0, while column B (elevation) is 1.


Ideally, you just want to run the Dynamo script once. If you run it multiple times, Dynamo won’t modify the existing levels but will create new levels which will be problematic.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Add Revision to sheets

Add revisions to multiple sheets

A simple Dynamo workflow for adding or removing a revision to multiple sheets simultaneously in Revit 2022 or lower.

Create Internal Elevations with Dynamo

Create internal elevations

Generate elevation markers and corresponding internal elevation views using Dynamo based on rooms and their bounding wall’s orientation.

Sync Room Parameters

Sync room parameters

A Dynamo workflow to synchronise instance-based room parameters, such as apartment number, nested within a Revit model group.

Rhino Inside Revit for Dynamo users

Rhino.Inside Revit for Dynamo users

Learn some of the key differences between Dynamo and Rhino.Inside Revit and discover the benefits of migrating certain Dynamo workflows to Rhino.Inside Revit.


© 2023 Parametric Monkey
Parametric Monkey and the Parametric Monkey logo are trademarks of Parametric Monkey Pty Ltd.


Drop us a message and someone from our team will be in touch with you shortly.


Thank you for your interest. Someone from our team will be in touch soon.


To find out about upcoming public workshops or to organise a private workshop, please submit the following contact form and we’ll be in touch soon.