Levels from Excel

3 min read
Share on twitter
Share on linkedin
Share on facebook
Share on email

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.

Share on twitter
Share on linkedin
Share on facebook
Share on email

Leave a Reply

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

Balcony Area and Depth with Dynamo

Min balcony area and depth

Verify a balcony’s minimum area and depth with Dynamo for compliance with the NSW Apartment Design Guide and SEPP65 requirements.

Renumber Balconies

Renumber balconies

A Dynamo workflow to renumber balconies based on their associated apartment room to assist in documentation and compliance checking.


© 2021 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.