Batch copy parameters and values from Element

I am facing the following situation: in my current workflow, I use a specific software for structural design of concrete structures. This software can generate a 3D model of the elements with their respective reinforcements. The model can be exported and imported into Revit, but the problem is that editing the rebar becomes limited. Parameters such as spacing, layout, and number of bars are imported in “read-only” mode and are not editable. After contacting the software support, I was informed that this is a standard feature of the software, and indeed the reinforcements are not meant to be edited in Revit, only in the software where they were modeled. However, this workflow becomes unfeasible because if a small change is needed, such as adjusting the spacing, I have to export and re-import the entire model.

The initial idea I had to work around this limitation was to redo all the reinforcements after importing the model, since all the information is already there but with editing restrictions. If I create new reinforcements within this model, they are fully editable. The problem is that I haven’t found a way to extract ALL parameters at once from a given element, only to extract specific parameters individually, which in practice would be extremely laborious since each reinforcement set has about 72 parameters.

IN SHORT: I need to copy all parameters from an existing reinforcement set > Recreate the reinforcement exactly identical in the same position (without the editing restrictions) > Delete the original reinforcement set.

Three nodes of note:

Element.Parameters which will return parameter elements.
Parameter.Name which will give you the name of a parameter element.
Parameter.Value which will give you the value of a parameter element.


Like i said in post: getting individual parameters is easy, but I need to copy all the 79 parameters in “Parameter.Value” and in “Parameter.Name” so I can rebuild the rebar exactly the same

On the new element you can now use Element.SetParameterValueByName with correct lacing and list levels and you’ll be done.

Can you explain more about lacing and list levels? I’m new in Dynamo and never have used this functions

Check sessions 5 and 6 in the Dynamo Office Hours which can be seen here: https://m.youtube.com/playlist?list=PLdlF7MirPEC2yNFTGymESd3t7Xosfk9c2