Read data list from excel and assigns data to Revit Family parameters by Name

My plan is to create an excel sheet that has all the information for all Panelboards.

I have two types of families:

Equipment Family Types and these includes all my Panelboards that will be placed on the floor plans.

Detail Item Family Types and these will be used for the Single Line Diagram to represent Panelboards in Revit.

The idea is that both families get their parameter fields populated based on their Panelboard Names. If I figure out how to link and collect data in a smart way from an Excel sheet to one of these Families I will be able to do it for both.

Can anyone help me or point me to the right direction on how to accomplish this?

thank you in advance!

I will share once I get it done.

I imagine all your family has already been placed in the model and has a sort of “Identification Code”.

You can create a xls file like this:


E1,E2,E3 are the ID code of the families;
p1,p2,p3 are the parameter names;
a,b,c,… are the parameter value.

So you can use the ID code to get the right parameter values and assign them to the right family instance.

Then you can place the detail items on view, using the location of the equipement family and finally set the parameter reading from equipement family or xls.



I found this diagram that includes all the nodes I have in my current Dynamo Version. However, I don’t know how to use excel to replace the Code Blocks.

Try this:

@m.ravelli thank you for your help! It worked! But it worked only with one column, as soon as I add a second column, the data shows as shown in the picture.

if the exporting to Revit isn’t done yet, nor the importing of the new data, you can consider using the elements unique Id as the key to bringing back the changed data.
this way there can not be a mistake, as making you own identifiers can have errors.


Try to check the input lists following the structure in the attached image.

I noticed also you are using “auto-lacing”…I don’t know how it works…
But for tasks like this I always set the “Element.SetParameterByName” so:

  • lacing = longest
  • parameter name --> use level @L2
  • value --> use level @L2

It should work fine…