Iteration in Grasshopper (Without scripting)

Heumann Design/Tech

Lately I have been experimenting with iteration in Grasshopper. Iteration is often thought to be synonymous with the computer programming concept of a loop, but while the concepts are related, the definition of iteration I will use requires that the results of one iteration are used as the starting point for the next iteration. A loop can simply be a way to apply the same operation to a list of elements (much like processing multiple values with a component in grasshopper), but it is an iterative loop if the results from one step are used in the calculation of the next step (something grasshopper does not directly do.)

This concept is also tightly linked with the concept of recursion. Simply stated, the definition of a recursive function includes the function itself. Fractals are among the canonical examples of recursion in mathematics and programming. Because recursion in programming describes a very…

View original post 1,013 more words

Loops and recursions in parametric modelling

I have come across this problem already twice in this month and by looking at this fascinating post on Andrew Heumann’s blog (and over 10,000 downloads of the GH plug-in Hoopsnake, for which I am sorry if I accidentally misinterpret in this post) it seems to make quite an interesting case.

What are loops?

It happens when you are trying to use some function or component, for example array. When you are taking data from it and establish relations with other functions or components and bring this data back to it, then you have a loop. A loop of data, which most of programs can’t apperenty work out.

At this point I should mention again, that if Hoopsnake actually did not have in purpose to deal with this issue, but just create “repetitions” of components let me know in comments. Anyway I am not going to write vastly about it anyway, because the best solution seems to lay somewhere else.

And namely, what I have firstly found out on Andrew’s blog, the best solution is instead of bringing data to the previosuly used function, simply copy it as a new one. Data can so flow and the loop is smoothly “omitted”.

Some examples

The first time it happened to me was when trying to trim a hexagonal pattern in Grasshopper, by using some of its information from and back to it.



The second time was when creating a set of stairs controlled by its slope’s angle in Revit Family Editor. However in the latter example the error was at least more evident, while all the parameters and all the formulas were arranged in a schedule and the already used ones were grayed out.


Great thing to learn and personally, so far the issue, which has brought the closest, as I have ever got before, to technical programming problems. I regret not describing both situations in GH and Revit closer, especially, becasue I have had already the images prepared, but.. well, time constraints are slowly bringing me into a loop.

Flux of architecture

With this post, intended to be primarily titled “Has anyone noticed the conspiracy behind BIM software?” it is more than a pleasure to announce the comeback of daanico in the thresholds of cyber-landscape.

After quite (quite) a while spent in the studio, all the assignments, trips (which after all should not be seen pejorative) and projects are finally over, so one loses all the excuses to slink away from the ever-exciting journey of architectural journalism.

Shift GH

And what a better way to reactivate the machine, if not through a disruptive revolution of its system? Who might find a possibly better way than shifting focus from the previous phenomenologically-based experiencing architecture into its technological and social analysis. Exactly these subjects devoured my last year, which otherwise can be stated (on one breath) as ProcessingRhinoGrasshopperRevitDynamo + plugins, plugins and plugins.

I is for Information

The most disruptive of them all be BIM, with emphaisis on “I” and the idea of unifing the whole building process and all its hard-working phases of technicians, architects, engineers and contractors into a one gigantic platform. To draw this idea more precisely I will re-write what I have put down on a paper after a one long Sunday spent in Revit Family Editor:

  • “We will come up with a single program that will be used by everyone designing, engineering or managing the building process (…) from the highest skyscrapers to the daily products.
  • We will have a single library of manufacturers’ data on every building component and we will be able to download it, process it and upload it back.
  • We will create system of scripts and algorithms so intelligent that it will always find the best solution in any part of the world.”

… and architects become Information Workers and Design will ultimately lose its arbitrariness for ever-logical system of zeros and ones – NOT? Maybe…


Given development of Dynamo strongly underway, scripting and coding will surely become standard in most of architecture schools. Forgetting about artistic, phenomenological character of design – NOT!

The two must come together, must collaborate, to create the Fallingwater effect, which gives design its flux and its drama, and ultimately determines its real value.