RTC-Clowns

RTCAUS 2015 Prelude

Later this evening I get on a plane that will keep me locked up for more than 26 hours and then release me on the southern hemisphere. In Brisbane, Australia, to be more precise. There I will hook up with my buddy Arnfinn, before venturing to Gold Coast and RTCAUS 2015.

At RTCAUS I will give two Dynamo presentations; Dynamo in Structural Design and Enhance Your Project Workflow with Dynamo. Both should be pretty awesome. If you are going to the conference and haven’t signed up for them, I suggest you do. You will learn lots of basic Dynamo. You’ll also see some pretty advanced stuff, like for instance use of Konrad K. Sobon’s Mantis Shrimp, that creates a live link between Grasshopper and Dynamo.

Mantis Shrimp allows users to live update Dynamo and Revit from a Rhino/Grasshopper session

Mantis Shrimp allows users to live update Dynamo and Revit from a Rhino/Grasshopper session

I also look forward to hooking up with Adam Sheather and Jon Mirtschin again. Keen the beer cold guys!

Door Handing in Revit with Dynamo update

Door Handing Sample

I’ve been getting some feedback that the Door Handing workflow I used in my post Door Swing Direction in Revit from September 2014 does not always work. I have now double checked with Konrad, tested with Revit 2015 UR5 + Dynamo 0.7.5.3566, and created a working sample model and corresponding definition. The sample file uses a single Door family and it’s Comments instance parameter. It should be rather straight forward to change the sample to work with any other project setting. Download:

Door Handing Sample

Please note that I have included two Door Handing nodes; Konrad’s Door Set Handing, part of his archi-lab.net Package, and erfajo’s Door Handing node, part of the Package DanEDU Dynamo. They work slightly different, but should be able to provide the same results.

Konrad explicitly told me to forward any further problems to him directly. Check out his webpage for comments and contact details: archi-lab.net

Numeric Parameter And Camera Position With Fixed Target

Dynanimator released: Animating Data Changes in Revit with Dynamo

You know that feeling? When you have an idea? And you know that if you succeed, you’ll love the outcome? I have that now.

Numeric Parameter

The first time I saw someone animate data changes in a building design environment, I was blown away. I think the people responsible for the slightly embarrassing incident were Stephen Melville and he’s team’s work at Ramboll Computational Design in London. Around the same time I saw Zach Kron’s flying bird wings – a GIF animation made in Revit with Harry Mathison’s Image-O-Matic. That led me to produce a number of similar movie clips, based on Revit’s Conceptual Modeling Environment and Harry’s tool. Later, when I read Michael Kirchner’s research on creating iterative daylighting analysis workflows using Dynamo and Cloud Rendering (Part 1:Changing a Family Instance and Saving an Image), I realized that I could build my own animation workflow with Dynamo.

During Autodesk University 2014 I collaborated with Andreas Dieckmann, Julien Benoit and Ian Siegel on a Dynamo Hackathon project called Dynanimator; a set of technologies in Dynamo that creates image exports per parameter change iteration. Today we have published it. The Package is based on Dynamo version 0.7.5, but should work perfectly on 0.8.

The outcome will be a set of images. I normally create GIF’s in GIMP 2 or MP4 in Windows Movie Maker. Sometimes, when I’m in the mood, I combine multiple MP4’s with selected audio in Camtasia Studio, like I did in my post Animate design iterations in Revit with Dynamo from late in 2014.

p_completeSection 1deflection top

Check out our GitHub repository for additional information about usage, collaboration, samples, etc.: Dynanimator

Last, here’s a short video tutorial showing how I use these nodes:

In the future we want to start combining this technology with both analysis and optimization techniques. Try to visualize an animation that shows how a room gets optimized for daylighting. I think that’s a very interesting way to communicate visually what you are doing as a designer.

Now bring your models alive, and share your animations with the rest of the world!

Smithsonian collage

Dynamo Video Tutorials

How do you learn to play the piano?

You learn the basics, find a YouTube instructor, and practice a melody that you like. That’s how I do it anyway. How do you learn computer software? You learn the basics, and find a problem that you love solving. That’s how my son learnt how to ski. It has to be fun. And now I play Bach. Because I think its awesome.

I recently hosted a whole day Dynamo lab for engineering students at Bergen University College. The curriculum that I used was a developed version of material I presented in 2014 with Julien Benoit at RTCEUR, and solo at Autodesk University (AU) 2014; Computational Logic in Structural Design. The math and script was developed last summer, with much help from Zach Kron.

The structure was inspired by a question I got from a colleague during a Computational Design workshop at Dark: “Dude, have you seen the Smithsonian”? Voilà; I had a problem that I loved to solve. Now, 64 students in Bergen have learnt how to mathematically model the roof of the Smithsonian American Art Museum atrium roof in Washington DC.

After AU I expanded the example with more Structural Framing diagonals, analytical model information and Robot integration. Instead of writing new or revising documents to supplement the live labs, I decided to record short and fast video tutorials and post the on YouTube.

The students are now using these tutorials to learn Dynamo with my Smithsonian roof problem, and so can you:

Here’s the handout I wrote for AU: Computational Logic in Structural Design

In the future I hope to expand the curriculum further by applying more analytical data (Loads, Load Combinations, Boundary Conditions, Calculations, Results Management, Analytical Visualization, and so on) and perhaps genetic algorithm optimization techniques (Galapagos, Optimo). I’d be very interested to hear if you have ideas to ways this problem, and it’s solutions, could be enhanced.

Last, I gave my students an assignment. Go ahead if you want, and see if your skills and imagination can challenge theirs:

Create a Dynamo script that generates a roof of steel beams based on a trigonometric function. The example below is based on a sine curve between 0 and 180 degrees. The structure must be parametric in length, width, height and grid. Present the results in an inventive way.

Assignment

2015-03-11_16-47-06

Using Dynamo to manipulate building data in BIM part 3: Random Parameter Values

A while back I got into a conversation with Daniel Hurtubise at Renzo Piano Building Workshop about possible Dynamo use cases. It turned out we had aligned ideas: Trying out different randomizing techniques with Revit Planting (and other) Families.

Today I recorded a short video demonstrating how you can do this in Dynamo. For the method to work you need parametric planting families. I got mine from Revit legend Andy Milburn. Read about (and download) my revised families in my blog post Flat People. Planting Families are a bit weird in Revit, but Andy made them flexible by using Family Nesting and Number Parameters for width and height scaling, in addition to an Angle Parameter for rotation.

Random Planting Shadows

This is a generic workflow that can be used on any number of Revit Families and Parameters. For instance, I have randomized facade modules with the same methods previously.

Fasademoduler

2015-03-09_16-44-37

Using Dynamo to manipulate building data in BIM part 2: Selection

Our fantastically talented and in many ways awesome Ph.D. candidate Margarida Jeronimo Barbosa asked me if she could delete some Levels in a Revit project file. After I had elaborated for a good 10 minutes about the possible implications of doing so, she gave me the “I’m going to walk away from you, crazy person” look. Trying to prevent that, I introduced the idea of using Dynamo instead. She lingered, hesitantly.

In short, stuff gets deleted if you delete a Level that hosts stuff. What stuff, you ask. Dunno, I respond. At least Views (and their view specific stuff), Floors and Roofs. More than that? Possibly. Not very reliable consultancy, that.

So, how does Dynamo enter the equation? With Dynamo you can select all elements on a Level! Yay! How? Watch:

Like I noted in the video, you’ll need Andreas Dieckmann’s Dynamo Package, called “Clockwork”. That package will help you with a lot of other stuff too., and has a GitHub Repository at ClockworkForDynamo.

2015-03-09_16-46-18

2015-03-09_12-04-37

Using Dynamo to manipulate building data in BIM part 1: Shared Elevation

A simple way to try out Dynamo on building projects is to use it to extract, compute and move building data. One example that I love to show uses the problem of tagging and scheduling building component elevations in Revit. Last week my buddy Hannes (svensken) at Dark asked about this for Ceilings. I decided to make a short (and fast) video recording of one way to do it:

This example uses an already existing parameter (Height Offset From Level), and adds it’s value to a (manually entered) number. If the objects your are manipulating do not have this parameter, you can extract their geometries, find vertices and their respective Z-coordinates. I believe you also can extract the global elevation automatically from Revit’s Site Location, but that may require Python/API work. The definition produced in the video only works for Ceilings hosted on Level 1. To make it work on multiple Levels, install Andreas Dieckmann’s Clockwork Package, use Element.Level and add the Level Elevations to each Ceiling.

2015-03-09_13-38-08

It is a common misconception that Dynamo is a geometry engine for Revit. William Wong at CASE recently wrote about that in his blog post Dynamo: More Than Grasshopper Lite. Dynamo can build advanced, mathematically defined geometry. So can Grasshopper. But Dynamo can also compute building data. And that makes it a unique product.

Using examples like these can be a good way to learn visual programming, test Dynamo on projects and teach your colleagues about data manipulation. Let me know if you come up with other ideas!