Setting parameters across multiple RFAs

Hello everyone,

Summary :
For families management, I want to set values for paramaters across .rfa family files inside a given folder.

Inputs :

  • folder path with variable number of families
  • these families have variable numbers of types
  • the parameters we went to set values for have already been injected (default null values)
  • excel file with X columns : “family name” “family type” “param1_name” “param2_name” …

What works :
as a given example, I have 55 families and each of them has 2 parameters I want to set values for.
so I have my excel file with 4 columns"family name" “family type” “param1_name” “param2_name”.
from then, I compute lists like these :

  • Family documents 1…55 cycled twice (110 terms)
  • Family types 1…55 cycled twice (110 terms)
  • param1_name (cycled x 55) & param2_name x 55 (110 terms)
  • param1_values (55) & param2_values (55) (110 terms)

If we were to join and transmute, we would have a list of 110 x 4 terms "“family name” “family type” “param_name” “param_value”. So far so good.

But I cannot for the life of me figure out how to set up the parameter values from here. I went the Orchid way (thx @erfajo btw)

When I pass all lists to the SetParameter node, my Dynamo freezes.

From some other topics I figured maybe the FamilyDocument Input might not take list so I tried to List.Map that Input but that gives me the error "run this command inside a FamilyDocument

As far as things go, everything look good, for example if I take the first items of the lists, it is working.
So the issue seems to be on the replicating. I’ve also tried Combine and Lace without any success.

I guess I could go the other (python) way but that would be a last resort.

Anyone got an idea ? Thank you all very much for your time.

With the FirstItem :

Crazy question: Why not load the 55 families into a blank project, get the family type from each (looks like you only have one type for each family), and set the parameter values as desired for the 2 parameter names using the 2 sets of values, then save out the “save as library” function in Revit? Might have the added step or manually requiring you ‘save as a library’, but it certainly avoids a lot of headaches around multiple family documents in the background in the family environment (which is why your listmap attempt won’t work), and allows for an easy review prior to export (make an instance of each, and check the schedule values against your excel data).

Alternatively I think you’ll have to play with list levels and lacing, and I’d expect a ‘lock up’ but task manager will show a Revit instance working hard in the background (one full core at 100% utilization). Reason for this is the node effectively has to open an invisible Revit instance, then open the family documents and then get to the real work). How this works for multiple parameters in a single document isn’t clear to me. Also I do not know if there is a simple way to monitor the results when done with that method though.

It’s also advisable to do the two parameter values on only 3 families until you build out your graph - this will allow you to test without as much lock up time, and keep your data structures more comprehendible as you go.


Personally I think having your families loaded into a master project is a good idea for reasons beyond this – it’s a great way to maintain consistency. :slight_smile:


Hey, if you post on Eric’s page he might have an example graph or some suggestions?

1 Like