Tips for managing Dynamo Script on large subsets


I’m looking for any tips on how to best manage a script on a large model with lots of elements. Essentially I’m running the same script on 7 segments of a path to arrange some pavers. Each time I run the script on a segment, I tweak some of the parameters. In order to do this, to go around the element binding I’ve been copy/pasting the nodes into a new Dynamo file each time. I would like to use the dynamo player, but there are just too many inputs that I’d like to tinker with that setting them up would be a pain.

Here is the plan view of the 7 segments:

And here is my convoluted script:

I really wish there was a way to get around this silly element binding. Not every scripting application calls for that. Any advice on how to improve workflow appreciated.


Player plus Dyna-Shapes UI. Have your graph write and read a CSV file to retrieve your previous values for use in the dialog defaults.


Why not run on all segments at once?

As a heads up the image you posted of the graph is too small of a resolution to work. Zoom in so you can clearly see the node names and relevant expanded data values, and then use the ‘export workspace as image button’ (camera icon in the top right. The png it saves will be at the zoom ration you’re currently zoomed to and will contain all nodes and notes on the workspace.

The other way around element binding is to use function passing. Leave one input out of the node that creates the Revit elements and then use a Function.Apply node where the formerly element creating nodes are the function, and the argument is the removed input.

1 Like

Why not run on all segments at once?

Several reasons. It’s a really large volume set, and the computation takes about 30s on each segment. Also, I don’t want to rebuild all 7 segments each time I want to tweak one of them.

export workspace as image button

This is very handy. Thanks!

Function.Apply node

I’ve seen you mention this in other threads. I couldn’t figure it out but I’ll give it another try. Thanks.