Place different family types into Revit at once?

Hello everyone,

Is there a way to place different family types into Revit at once? I have a list of different family types as well as a list of their corner points, I was hoping I could place a family type at each location at once.

The script works when I replace my list with a Family Types component and I select only one family at a time.

list.combine should do it :slight_smile:

And the generated content

I hope the logic makes sense. A nested list for each input, into the combine node with the function as the combinator.

Hi John,

So my List.Combine component fails and also when the adaptive components are sent to Revit I’m getting 2,116 adaptive components instead of 46 (46 duplicates for each instance), which leads me to think my data structures are incorrect. Also, I guess I’m not completely clear on what the Combinator input requires.

I apologize if these are basic questions, my proficiency is in grasshopper and I’m just getting into Dynamo as of recently.

Thanks again for the help!

Remove the wires from the Adaptive Component by points node inputs.

Ok, but now I’m getting all nulls. If there is nothing going into the [AdaptiveComponent.ByPoints] component how will Dynamo know what to place into Revit. I’m a bit confused now…

the inputs in list.combine should follow the same order as those on the node you use to combine your lists :
here the list of points should go in list1 and the list of family types should go in list2

Hi Mostafa,

Even after matching the inputs on the combine component I’m still getting nulls, am I missing something else?

Thanks for the response!

Are your lists the same length?

Well I have 46 Lists, the list with the Family types only have 1 item (Family Type Name), the lists with the points have 4 items (each corner point). So maybe this is messing things up?

It shouldn’t cause an error. That is assuming your family has four adaptive placement points of course

Yea, I’m stumped my adaptive components have 4 corner points and the list.combine is still only outputting null values…

Thanks again for trying to work this out!

If you don’t mind sharing sample file(s) that could help.

Sorry for the delay in sharing these files, see attached example files. I really appreciate all the help!

Example File.dyn (25.9 KB)
Points XYZ.xlsx (11.5 KB)

So I placed two random components. Is this the shape you wanted?

Yes the overall shape is correct. So you were able to place two different family types at once? It’s hard to tell by the image if they are different.

Yes they are different. You had some lacing stuff wrong and the list was different lengths. We also didn’t need the combine after all. I’ll post the dyn in a sec
DYN file Example File.dyn (16.3 KB)

Also, probably best to run on manual :wink:

Hi John thanks for the file, however its surprisingly still not working for me somehow… when lacing is changed to longest i only get the first item from each list. did you change something else to get all the point values? Also when i do change it back to shortest i end up with duplicates at each location like before. Not sure how i could possibly be messing this up still…

Thanks again!

I get 46 panels at each of the 46 different locations like before so something must still be incorrect with my data structures when i send it to the adaptivecomponent.bypoints component. Were you getting and duplicates?

Hmm. Is each list a collection of the four points you need?

Hi John I’m working with Justin on this.

This is the Point List next to the family type list. I’ve reduced it to just 4 sets of points to make things easier for myself. The four points in each list are correct. Based on the amount of duplicates, the adaptive component by points tool seems to be doing something like a cross product (though the lacing on the tool is set to shortest). Its taking “[0] Family Type:WT1-VISION…ect” and creating a curtain panel at each [0]List [1]List [2]List [3]List of points. Then doing it again for the next family type in the list.

What we’re looking for is the first set of 4 points creating a WT1-Vision curtain panel, the next 4 points creating the next family type in the list, and so on and so on. I tried flattening the family type list so that it looks like this thinking that each family type would then relate to each list of 4 points but the result is the same as above^^^ 4 units at each location.

Also tried the points with the lacing on longest, with the flattened set up but it returned an error.
Any thoughts?