I’ve been building more complex Dynamo graphs for Revit automation, but performance becomes very slow as the graph grows. It can take several minutes to run even simple updates, making it difficult to test changes efficiently. How do you organize or optimize large Dynamo scripts to keep them responsive?
Hello @Danieljohn and welcome, not sure if it this is the right answer, but you could try split all up in dyns and then insert/merge to master dyn again, when you are happy with that, or try Tune Up and see where is struggle in execution time, or try freeze nodes you dont test on , and then try optimize that, only my thoughts ![]()
Could be a few options here. The first I’d encourage is looking into Python for dynamo - you can save a lot of nodes by doing this and get access to things like for loops which makes a big difference. This is moreorless why i got into python originally.
If of interest i have a general free python course here which has a later chapter that introduces dynamo python for revit:
@GavinNicholls yeps ![]()
@GavinNicholls yes absolutely. Copilot is with python/dynamo great (for mi)
Context matters. A complex graph that handles lists full of large strings can still be lightweight. A complex graph calling geometry, comparing geometry, adding/subtracting geometry, executing transactions, etc. can get hefty, especially if the geometry objects are solids/meshes as opposed to lines/points.
So, list optimization to reduce excessive geometry manipulation can go a long way.