building data – harnessing the power of Grasshopper to schedule data in Revit

image by archi-lab

The topic of today’s post is quite vague so let me elaborate. Often time I find myself working on projects that from the early schematic design to late CD’s were studies and developed using software other than Autodesk’s Revit. However, even as designers are working in Rhino, Grasshopper (GH) or AutoCad to create ideas sooner or later they all get documented in Revit. I myself find it much easier to generate complex geometry in Rhino/GH, but nonetheless eventually it will find its way into Revit. Geometry itself is usually not that big of a deal since there is already an array of plugins like Hummingbird, Chameleon, Grevit or Lyrebird to transfer that information from GH to Revit. What usually bothers me is that as I am generating all of these complex roof panels, fascia panels, ceiling panels, facade panels and all of their identity information, widths, lengths, angles, ids, assembly ids, etc is really just “data” and not geometry. There is no plugin currently that let’s you move that stuff from GH to Revit in a straight forward way without jumping through hoops. I mean I am all for exporting it to Excel and then loading it back in. That’s easy enough but you have to make sure that you already created Revit elements and their parameters to write that data back to them. What about just “data” that doesn’t come from Revit elements? What if its something artificially created in GH and shouldn’t really be attached to anything in Revit. That’s where this workflow comes in. Using Mantis Shrimp, now I can easily generate a KeySchedule in Revit and fill it in with data from GH. No hassle of creating Revit elements, adding parameters and then writing data to them so that they can be later scheduled. 2015 is going to be so much nicer with this workflow handy.

Check out this video preview and read on for some more detailed explanation:

Here’s how its done in a very brief descriptions because its just a work in progress and not a finished product:

First I generate my data set in Grasshopper and export it using Mantis Shrimp:



Once I have that I import it into Revit like so:



Then I generate a Key Schedule in Revit of some rarely used category. For this example I used Analyitical Nodes category from the Structural group of categories because I never used those nodes for anything in Revit so I am sure this won’t be a conflict later in the project.


Then I add the number of parameters that I will need (it matches the number of items that i had in every list that i exported from GH):


Then I use Archi-lab’s Get All Views node to get that schedule:



Finally i create a list of parameter names that I added to my schedule…(I can’t seem to figure out how to skip that step. I will work with Autodesk developers to hopefully get that incorporated into the code so its not a manual step):



From there you can edit this schedule just like any other schedule. I usually change the header text, borders and sorting and grouping so that data for every panels gets grouped together. Here’s what it can look like at the end:


Support archi-lab on Patreon!


  1. Bill Allen says:

    This is awesome. Just what I needed. Thanks!

  2. EB says:

    I’ve gotten “Key Schedule” to work in 2015, but it is apparently only for Text parameters. What would it take to have it work for Lengths and Integers, too?

    • If it was me, then it would just take some time to write that functionality and test it. If it’s someone else then I guess time, Python, Revit API and maybe some Excel chops as well. :-)

  3. Daniel Hurtubise says:

    This is really something i was looking forward since we already have a tool taht does it but Dynamo sounded like a good idea.
    I get a null value with a small sample and i’m not sure why. I think i’m using the right node (obviously note) :)
    Thanks in advance for any help :)

    • Daniel Hurtubise says:

      Got it to work when i used the Views node. So GREAT start :)
      I still have a few more questions. My numbers in excel are transfromed into 1.0 in the Key Name, not sure why.
      The Schedule is not being updated when i change a value in the Excel file. I erased the values and ran it again and i get null values again.

  4. Jacob Thomsen says:


    Im trying to import a excel schedule to revit, using your guide abow.

    i just cant figrued out what im missing, – i cant type in the codeblock .
    ive atteched 3 picture. dynamo, excel and revit (key schedule)

    Hope you migth could help me with the missing link in this dynamo..

    thanks on beforehand

    Attachment:  dynamo.png

    • Well, that Excel file is formatted in such way that it will have a ton of null values when it’s read into Dynamo. Dynamo or Revit for that matter won’t handle null values very well so I suggest that you try and curate the data or format it appropriately after it was read into Dynamo. Remember that you can’t really do anything extraordinary with these custom nodes, if Revit itself doesn’t allow that. It for sure doesn’t allow all of these merged columns. You will have to figure that one out yourself.

  5. Jacob Thomsen says:

    sorry for the spam. here is the excel schedule i like to import.

    thanks jacob

    Attachment:  Excel.png

  6. sebastian torres says:

    good day, i was trying to use these node but instead of importing the info from excel i would like to the script to take the Rooms Name instead but is doesn’t work. and yes the “KEY UBICACION” views are key schedules

Reply to sebastian torres Cancel Reply