Iterative Processing - Cyclic Dependency

I am trying to recreate something using Dynamo that I had previously solved using “iterative calculations” in Excel. But at the moment I am not sure how I can solve the “Cyclic Dependency” error in Dynamo - or whether that is actually possible?

The whole graph is a bit more complicated, but on a high level it’s an accommodation schedule:

  1. Based on an Area (GIA) input from a massing model and a desired mix of residential units, the graph calculates how many units in total can fit into that GIArea.
  2. For all these units, the Area for Communal Functions (bikes, bins etc.) is calculated.
  3. This Communal Area is then to be subtracted from the original GIA and the process should start at Point 1 again … (in Excel the calculation repeats for a max 1000-times or until the variance is =< 0.001).


Is something like this actually possible in Dynamo? Or is there another way to overcome the “cyclic dependency” error?

As always, many thanks for your suggestions and tips.


Sorry it’s a bit abstract for me, is this what you’re wanting?

GEA = 12,00m²
GIA = 10,000m²
1 Bed = 50m²
2 Bed = 75m²
Mix = 2/3

pass 1
GIA = try 90 x 1 bed & 60 x 2 beds… requires 650m² communal… remainder = 300
pass 2
GIA = try 87 x 1 bed & 58 x 2 beds… requires 575m² communal… remainder = 0

It sounds like what you are after is a while loop. Dynamo nodes cannot handle that type of imperative programming by itself. To do this I think you will need to use either a codeblock using an Imperative function written in DesignScript or to use Python.

1 Like

Dear Phillip,
Did you manage to solve your issue? If you did with some method that satisfies you can you provide me with the thinking behind the solution?

@D.CHRISTIDIS unfortunately not. My Dynamo skills are still limited and that’s why I did not follow up on @kennyb6 suggestion. I should have mentioned this and replied at least out of curtsy. Apologies.

I have used a workaround with more familiar tools: I am now exporting the original GIA figure to Excel, where I have it calculate the iterations. I found that also to be much quicker, as Dynamo took already a fairly long time to process.

Thanks a lot for the reply. I’ve had some collaborative feedback to realize that this is not a straightforward process and it requires next level skills in general.