I’ll try to explain my problem as good as i can: I’m in a situation, where another consultant has to add some values to some parameters on some objects in our Revit model ( fire rating and security stuff) We’re not going to let them work on our model, but they’ll get a copy of the Revit file, for them to add the values ( parameters have been created already) i want to transfer the parameter values from their copy of our file, to the original, i’m thinking via an excel file. The question is: When i get a list of values from excel, how do i make sure, that the right value gets put to the right object? What if i modelled extra objects in the meantime, then my list of objects will be longer than the one in excel? How do i couple the values to the Element ID? You’re welcome to take a look at my test setup, it’s a clumsy one for now, all your advice is very welcome. Please let me know, if i need to explain myself some more. link to Revit, Dynamo and Excel File: https://www.dropbox.com/sh/ps3unnhti2cwbr3/AADH23v6WB38zA2sbPTB4igha?dl=0 Thanks in advance T
I’m bumping this thread, since no one has answered, and i’ve come closer to my sessential problem:
So two lists of different lenght. How do i replace all the instances of small letters with the correct capitals (a changes to A, etc…). I want to make sure, that when i insert the value F, it is NOT put into E’s place.
I have several tools in which i do something very similar to what you describe, and the UniqueID is the best way to tie things together.
Below is an image that should provide you a solution to your simplified problem of matching up the data. Use the “FirstIndexOf” node to find the matches between two lists (the Excel list of UniqueIDs and the UniqueIDs of the elements in your current model). This will give you the index then of the value you want to write to your model that exists in the second list coming from excel. Use a GetItemAtIndex node to pull the values you want. For your simplified problem you would use a List.ReplaceItemAtIndex node, but for your specific Revit workflow you will likely use an Element.SetParameterValueByName node. Also remember you can look up elements by UniqueID (there are nodes for this in Archilab and Clockwork packages best I recall). Hope this helps.