Excel data integration with Revit schedules

To begin I am working in Revit 2024 and using Dynamo v.2.18.1.

I have a schedule in Revit that is already scheduling families that have been placed in a model. The schedule is organized by “fixture” & “face”. I have added additional fields to the schedule that correspond to an excel file that contains the data that I would like to be filled in. I thought that Dynamo would be the best solution for this so I utilized ChatGPT to help with step by step instructions. The problem that I have run into is that ChatGPT has given me nodes that either don’t exist or I get errors when connecting them together. I cant seem to figure out how to have dynamo read the Revit schedule and create a list of the families that are within that schedule.
Any help is much appreciated!

Look into Dynamo dictionaries.

If no one beats me to it i can post an example tomorrow.

1 Like

The thing is to connect the right information to the right object.
You’ll have to think of a way to do that, because they all look sort of the same in a list.
I use the objects Id or UniqueId to make sense of what i’m doing before it get’s chaotic.
If you can find another unique combination of the values in the fields in excel and in the schedule that separates out every individual object, there might be an other (complex) way.

To quote @Nick_Boyts

So you don’t need a Schedule to populate data from Excel.

2 Likes

If I am understanding it correctly what you have shown above will populate which ever schedule column I choose with the data from the excel file?

Ultimately what Id like is for Dynamo to grab the data from the excel file based on a combination of the “fixture” & “face” that is being scheduled in Revit.

For example if the Revit schedule is showing Fixture A & Face B, I want Dynamo to grab the data in the excel file that is for Fixture A & Face B. The excel file contains over 400 combinations so I need Dynamo to be selective and just grab what is needed. I don’t know if this will need to be achieved using a python script or not.

Does that make sense?

The easiest thing to do is combine your two values into one (i.e. Fixture + Face = FixtureFace) so that you can create a dictionary of all 400 unique combinations as single item keys. Then you just get the two values from each element, combine them into the singular combination, and use your dictionary to get the appropriate parameter values.

1 Like

@Nick_Boyts beat me to it. That is exactly what i wanted to suggest.

I am very new to Dynamo so I’m going to need a little more explanation than that. Would I have to combine the two values together in just the excel file or in Revit as well?

You would only combine them for the dictionary. You would still have individual values in Excel and Revit, but would combine them to have a singular key for each dictionary item. I suggest you look into dictionaries to get a better understanding of how they work and what they do. That should hopefully clear things up.

With this example and my previous post you should be able to figure it out.

In Dynamo, but the values have to exist in the Excel file as well.

Start setting it up and get back to us when you get stuck. Good luck!

Advanced users understand this
This makes no sense to beginners
DS is blahblah to them

Maybe, maybe not. In any case it doesnt hurt to post these examples. I learned Dynamo like this (following examples).

Same here, but took some time

I’ve made it this far. What I need help with now is figuring out a way for the “X’s” to fill in to corresponding columns in the Revit schedule. Can anyone help me get the rest of the way there or am I way off?

Did you use a shared parameter?


I have parameters set up in the schedule for the columns. The same columns are also in the excel file, I just need the “X’s” to fill in the Revit schedule. Not sure if that answers your question or not.

There are a ton of topics on the forum already that deal with transferring Excel data to matching Revit elements. Please work your way through some of them and try to make attempts at the existing solutions before asking for help. If you get stuck on something specific, we can help you with that.

2 Likes