We here at Because We Can love leveraging technology and creating our own unique way of working to make great things. While we’ve developed a decent amount of in-house software to help our work over the years, I’m very excited and proud to begin sharing some of that work with you, with the initial release of “BecauseWeDynamo”.
It’s a set of custom-made Nodes for Project Dynamo focused on fabrication. You can find it in the Package Manager in Dynamo under BecauseWeDynamo and the open-source code is hosted here on GitHub.
A wonderful example of what this is all about is shown with the complex triangle walls of our recently completed Shipping Container Lounge project. The organic, flowing interior walls are made up of hundreds of unique triangles joined together to make a fluid, undulating, expressive (yet affordable!) surface.
Making something like this without some automation is almost impossible; the complexity can be hard to manage both in the design and in the building. So we used what’s called in our industry “Generative Design” where the combination of parametric 3D models and intelligent functional programming are used together to have the computer generate the design for you. You set up the rules and the smarts, and let the computer figure out the rest.
Autodesk Revit is wonderful at producing parametric models. We used it to made a special triangle object or ‘Family’ as they are called in Revit that you can flex using math into whatever size and configuration you need. You set the location of it’s three corner points, and the Family produces a flat triangle with radius tips, an offset ‘gap’ between it and the triangle next to it, and even proper placement for the joining hardware and more. This let us ‘hang’ these Adaptive Families off of 3D splined curves, making it easy to control the complex surface of the wall. Rather than model every triangle, we simply can push and pull control points on the splines, and have all the triangles model themselves.
However, just having a nice model of something is only the first 1/3rd of actually getting it built. Managing the production and assembly of hundreds of unique parts can be very daunting! This is where automation via functional programming is a huge help. We needed some way to export every triangle in a format that works with our CNC Router, and we need to label every triangle for ease of assembly. Doing it manually would take forever and is error-prone. Much better to produce a ‘script’ and let the computer automate that task for us!
Project Dynamo is a ‘functional visual scripting language’ for creating, manipulating, and automating all sorts of design data by non-programmers. Rather than write code from scratch, or call on existing libraries, and produce a stand-alone application like a software developer might, tools like Dynamo let us easily create one-off workflow solutions to automate small repetitive tasks and model impressively complex objects. It works fanatically well with Autodesk Revit, and thus was an obvious choice. Plus we really dig it, and dig the people working on it, so it was a joy to use.
Rather than write code, where the ‘flow’ of the program is abstract and non-visual, tools like Dynamo let you ‘draw’ your program. Perfect for visual designers like us! By connecting various Nodes together, you ‘wire’ together a solution for your project-specific problems, iteratively working your way through it as the code runs live and you see the immediate results.
Now, Dynamo is rather new, and it didn’t have all the Nodes we needed for this project. So we decided to create our own custom Nodes to scratch our own itches, and shared them openly for other designer-fabricators to make use of. For as we have for years now we release most of what we do under a creative-commons license.
So one thing our custom Nodes help do is parse the Revit model, label every triangle, lay them all out flat, and then export them to our CNC router for production. Every triangle is not only labeled, each edge of the triangle is labeled so you can easily figure out what edges go together. It made short work of this problem, and helped us make this wonderful and complex design efficiently and effectively.
Within BecauseWeDynamo you’ll find Nodes for part labeling, DXF exporting (with proper true curves!), mesh topology walking, edge labeling, and even our own custom old-school line-based pen-plotter style font suitable for CNC production. We’ve also got some auto-sectioning tools ala 123D Make, and are currently working on Nodes to help automate shop drawing production and development of complex surfaces. You’ll find on the GitHub site some great working examples, and we’ll be developing more samples, how-tos, and actual physical case study objects as well.
Our ongoing goal with this project is to make the fabrication of elements in Project Dynamo and Revit easier and more efficient; thus empowering all designers to be able to make great things like we do.