Set Parameter value by multiple intersecting values


#1

I’m trying to have Dynamo set the Floor, Wall, Ceiling, etc Finish Parameters to match the geometry that exists in the rooms. Right now, starting from Floor Finish, I am able to have Dynamo input the correct parameter value but only for one (usually the last) of the instances. Is there a way I can create something like a for each loop and have that feed into a concatenating variable that is ultimately fed into the parameter? Thanks! Here’s what I have so far:


#2

UPDATE: It’s been really bugging me that I don’t know how Dynamo knows which floor to assign to which room parameter… I just did some tests and turns out I was running on luck.

So what I need to do is determine which floors are in which room (I’m guessing via Geometry.Intersect but not sure where to go from there) and then assign the Floor Finish parameters appropriately, including when multiple values exist.


#3

This might not do exactly what you want, but should help serve as a guide.

Finish.rvt

Finish.dyn


#4

Wow that’s awesome, Thank you! I’m not at my computer right now to try but this is making sense.

So how does List.FilterByBoolMask work?

Definitely learning. Thanks again! I’ll update with the next phase.


#5

This seems to be working reliably. I followed your lead with the list manipulation. The issue was maintaining room-order-geometry to room-intersect-boolean sorting. I’d like to try this out on a larger project to see how well it performs. Thank you so much for the assist!

Finish_v2