Linking Parameter Information between Families


#1

Hello, all.

I’m a dynamo beginner, been trying to figure this out for a couple days now and was hoping someone could help! I’m trying to use dynamo to link parameter information between two different families so I don’t have to copy paste.

The scenario:
There are only a few of FamilyA, but a lot of FamilyB, but FamilyB wants to take on some info produced by Family A (parameter X). In order to create the connection between the two, I made a text parameter for both families called “FamilyA_ID,” so multiple Family B’s can pull the same information from 1 FamilyA. If I were to do this in Revit, I’d make a schedule for each family sorted by “FamilyA_ID,” collapse them, and then do some copy-pasting.
I’m looking to use Dynamo to avoid copy pasting because the quantities of both Families A and B are still in flux, and I expect to end up with around 20 of FamilyA and hundreds of FamilyB.

I tried to use SpringNode Dictionaries.ByKeysValues, but it seems to require the inputs to have the same count. I produce the values from FamilyA, but the key and search inputs, if I’m understanding how to use the node correctly, are derived from FamilyB, so I end up with only one instance of FamilyB being populated.

Does anyone have a suggestion about how I can do this? Sorry if my explanation is confusing!

Thank you!


#2

Explaination isn’t necessarily confusing, but I’m scratching my head as to why…

That said List.GroupByKey will sort your family B items by their FamilyA_Id, which can then be used to get the family A elements using an IDs to selection method. Pull the desired parameter value and then set the corresponding parameter value in family B groups.

By the sounds of it you should just use global parameters though. Would need to see the actual case and know more of the workflow to be certain though.


#3

Hi, Jacob.

I hadn’t considered global parameters, but that is a possible solution.

What is an “IDs to selection” method? Would still like to try and figure this out via dynamo if only for learning purposes.

Thanks!


#4

Select.ByElementId is the node name in question. Feel free to post a graph image for us to comment on if you’re stuck. It’s doable without the group.bykey node too.


#5

I made it a bit further using List.Map and GetItematIndex.

Brief explanation of what I’m trying to do - it’s basically a custom coordinate system where we can reference multiple basepoints instead of being stuck with one. The spot coordinate is a detail item family that calculates offset from its assigned Basepoint family by comparing their location coordinates. The offset calculation is done using a formula in the family, so the only things I need to accomplish via Dynamo is 1. Assign location coordinates to the Basepoints and SpotCoordinates and 2. Assign matching Basepoint coordinates to the spot coordinates family so it can calculate the offset. The last bit where I’m getting stuck right now is that my index of (3) will not line up with the list of (5)! Any thoughts on how to get around this?

Thanks!


#6

The graph isn’t readable in the screenshot. Can you post your dyn and a sample Revit file? I will look over what I did last night and see if it works for this too. It is more involved that what I originally thought so my 8 node fix maynot have been correct.


#7

Sure. I tried to upload, but apparently new users aren’t allowed to?

Here’s a dropbox link, if that’s okay.


#8

I figured it out! Had some lists mixed up and fixed the lacing on one of the nodes. Updated dynamo file is in the dropbox folder. Would love any feedback on if there’s another way to do this, or if I made any extra steps that could be removed.

Thank you so much for your help!