Grouping and Sorting and then Matching Data to Send Result to REVIT Parameter

Hello, I am new to Dynamo and attempting to create a way to map data from analysis software into REVIT based off of an X,Y coordinate between REVIT and analysis. So far i have been able to extract data from analysis and data from REVIT but am struggling on getting it all combined.

I have this data from analysis software

i have the XY Coordinates from REVIT to map to as well.

What i would like to do is have Dynamo look at XY’s between results and then if they match, the Col Number and Col Size will be mapped to a text parameter in REVIT column element based off the story name results shown from analysis software.

List.Create , put your 3 lists that are 433 items long will assembly them into 1 list for easy shuffling. Then run List.Transpose and you’ll get 433 lists that are 3 items long. That will give you groupings based on each item you’ve brought in. You can do the same with x and y coordinates to add those into those lists.

For matching, get your x and y coordinate in, run UniqueItems. Then run an = check to get a true/false boolean list. Then you can use IndexOf to get and sort based on common locations.

As a beginner, I recommend you keep Dynamo Primer and dealing with lists available while working. That dealing with lists actions I still have pinned for when I have dumb moments.

So i had to do a double list.transpose in order for it to work correctly. So now that i have the grouping correct from analytical software (top right portion of image), i now somehow need to get that data from List 1 and 2 (circled in red) into a text parameter within REVIT. I need to find/map and match the XY’s between analytical software and REVIT (circled in blue). This ensures the data is being written to correct coliumn in REVIT. Then at that point i can then map that data circled in red written to text parameters. I am bascially trying to map the information from one software to another by using the XY coordinates that match between the two. I apologize for doing a terrible job trying to explain my intent.

Can you share your script or post a larger portion of the script? I’m struggling with understanding how you have gathered and sorted your data to this point.

For writing to a parameter in Revit, you’ll use SetParameterByName with L1, - , L2 level acknowledgement.

Hello. I will attach images of pieces for my script. There is one script in orange which draws data from an external analytical software. The other script gets the XY coordinates from REVIT. At the end of the day, i want to get that data from the external software and map it to REVIT Text parameters by matching the XY coordinates between the softwares (this is only way i could think of to ensure data was being mapped to correct column parameters within REVIT.)

Here is script for external software data extract.


RAM Part 2

Here is script for REVIT XY Extract


GroupByKeys is the node you want. Use the list from your first List.Transpose > GetItemAtIndex of Index 0 to gather all of your points, then you can run a parallel GroupByKeys to organize from the List.Flatten to sort them all. I don’t have time right now or I’d show you how to push your 1’s and 24x18s into a sublist and then you could just run one GroupByKeys

Thanks for the help. I will give it go. If possible when you do have time to show or explain the remaining part that would be great. Getting those 1’s and 24X18s to map is the main issue i am experiencing or struggling with.

@scottW4TRA i have done your above mentioned items, but am still struggling with the groupbykeys and getting the sub data (those 1’s and 24x18s) mapped back into the REVIT columns.