Buildz is very pleased to Welcome AndreasDieckmann for this guest post. I met Andreas in Spring of 2012 at the WoodStEx Autodesk European Student Experts conference in Spain. This meeting was a exhausting and jittery time (the conference was sponsored by Redbull) and I had a pretty solid case of jetlag. A handful of people also got food poisoning, so that was fun. The students were fantastic, engaged and ready to learn, and Andreas was presenting these meticulous matrices of divide and repeat functionalities that blew me away. Since then we have collaborated on presentations and been sharing work and ideas around parametrics, building technology, and teaching. Andreas teaches BIM and Parametric Design as the Chair for Computer Aided Architectural Design (CAAD) at RWTH Aachen University / Germany.

Surface Remixing with Dynamo
Last year, I had the privilegeand the pleasure to teach an AU2012 class together with Zach called "EchoChamber: Complex Parametric Arrays in Autodesk Revit" ( At the very end of the class Zach showed a methodto map the distance between two arrays of nodes of two separate dividedsurfaces on the second divided surfaces and create an entirely new form in theprocess. To make this work, he made use of an adaptive component, somereporting parameters, some formulas and the divide/repeat functionalityintroduced in Revit 2013:

And here's an image of theresulting form when you map a torus onto a sphere (BTW: My boss's firstreaction was: "Oh nice, now we can also make turds with Revit!"):

Enter Dynamo. I had beenfollowing the project's progress ever since Zach posted about it in 2011( In early summer this year,I started working with Dynamo (again) on a regular basis when a bug was fixedthat had previously made it rather hard to work with on a computer with Germanregional settings. I was thoroughly impressed with all the new functionalitythat had been added to it in a relatively short amount of time, so I decided Iwould create some examples for my upcoming parametrics class in fall. This isone of them.

Dynamo has a lot of nodes thatallow you to work with XYZ coordinates. In order to learn more about how all ofthese XYZ nodes interact with each other I set out to recreate Zach's AU2012TurdMakerTM without the use of smart (i.e. reporting parameters& formulas) adaptive components. I ended up not only doing that, but also creatingsome more functionality because it was just a matter of adding a few extranodes. Here's an overview of what I cameup with:

The basic idea of thisdefinition is to select two faces, go through some additional settings and thenhave Dynamo create a new surface for you based on the inputs, hence surfaceremixing. Although I am not a big fan of the term form finding, this reallyis just a tool for form exploration (and maybe for learning a little somethingabout Dynamo in the process).

So how does it work? First weneed XYZs, so I built a custom node called XYZGridFromFace to createcoordinates from both selected faces it also provides us with the surfacenormals at those coordinates (which we might need later on):

We can then perform some basicoperations on those XYZs: Invert the XYZs if we so choose which is basicallya point reflection through (0,0,0) and scale them, i.e. increase themagnitude of one surface's XYZs versus the other surface's XYZs to make one surfacemore dominant than the other.

When combining the XYZs of bothfaces, we can choose between four different methods:
a) Add the XYZs of face #2 tothose of face #1
b) Subtract the XYZs of face #2from those of face #1
c) Use the cross-product ofboth XYZs
d) Measure the distance betweena set of points on both faces and use it to drive the offset of new XYZs overthe normals of face#2 (and that actually is Zach's original method describedabove)
To accommodate all of theseoptions I used a set of nested IF nodes and Boolean switches I hope that atsome point in Dynamo's future this can be solved more elegantly with a switchthat allows you to select several (custom) options.

As I had previously tried torecreate the functionality of the Parameter Values From Image plugin in Dynamo(, I thought I might as well include the option to furtherdeform the resulting face based on an image in this definition as well. Thisincludes the ability to invert and mirror (horizontally and vertically) theimage data. Apart from all the above, there are also some other settingsavailable like an overall scale for the resulting form and the ability to movethe form in X, Y and Z direction.

Finally, the resulting XYZs arefed into a Watch 3D node. Once we've found some settings that we like, we canconnect it to either one of two series of nodes, one of which will create alofted form while the other will create quadrilateral adaptive components. Thelatter option should always work, but not every resulting form can be lofted asthe resulting geometry might self-intersect. When the geometry cannot becreated, try changing the loft direction (U vs. V) sometimes it helps.

To wrap this up, here are someimages of various resulting forms based on Zach's original setup (sphere &torus). As you can see, turds come in all shapes and sizes. ;-)

Download the full dataset here.

Watch this short video to see how to operate the files

Andreas Dieckmann teaches BIMand Parametric Design at the Chair for Computer Aided Architectural Design (CAAD)at RWTH Aachen University / Germany. You can find CAAD on Facebook ( as well as on YouTube (

Click here to view the entire blog post.