Computational Design Lab: Reinventing BIM


Takehiko Nagakura and Terry Knight are teaching an awesome class at MIT in collaboration with CO Architects. “Computational Design Lab: Reinventing BIM” is taking the inventive step of not just teaching how to use the tools, but how to work beyond the capabilities available out of the box. Using Revit, students will “propose exploratory tools that augment or transform existing software capabilities in creative and innovative ways, to develop conceptual prototypes based on their ideas, and then to test their prototypes.

Tom Vollaro and I got to help kick start the process with a workshop last weekend. Here is a one hour excerpt, exploring reporting parameters, shared parameters, calculated values, and filters.

MIT class on Filters, Schedules, Reporting Parameters and Shared Parameters

Watch on YouTube.

Download the File


Non-linear propagation in Revit! Goalseeking without the API.

[Edit:  Siiiiiigh . . . this was a "bug" that got fixed in r2013]
Me: You can use a non-host element reporting parameter to drive a parameter in a nested family!
You: <ponder>
Me: Yes!
You: <ponder>
Me: But-but-but . . . You can use a non-host element reporting parameter to drive a parameter in a nested family!!!!!!!!  
This is Cool!   And maybe a little dangerous.
Regeneration in Revit is supposed to go like this:
Where changes propagate like this:
1. Host Elements
2. Reporting Parameter
3. Formula Driven Geometry
4. Other Regenerations
5. Final State
But with non-host element reporting parameters driving formulas you can get this:
1. Host Elements
2. Formula Driven Geometry
3. Reporting Parameter
4. Other Regenerations
5. Final State
See that little loop? That’s the regeneration sequence turning back on itself. This COULD be really bad, making something like this:
Where you never get to a final steady state and Revit explodes in a puff of logic and a red hot CPU.
I was kicking around a model with Ritchie Jackson, building a better deflection panel (it’s awesome) and I saw that he had hooked up a non-host element reporting parameter (that had no business driving anything) to drive a non-geometric calculation in the nested family.  This was cool in itself, but the implications are pretty awesome (if you are into this sort of thing).
Family1: A cube with a height parameter called “height” which is set as equal to 2*halfHeight, which is value 1’
Load Family1 into host. Add a dimension to the loaded cube height, make it a reporting parameter called hostHeight, which is currently 2’.  You can follow along at this point with the looper_height.rfa file here.
Select the cube and set “halfHeight” to be driven by hostHeight.
Cube regenerates, then regenerates again. Cube is now 16’ tall! So it loops once to drive initial state (2’) back into the nested family (changes 1’ to 2’) which then makes the hosted family 4’, then does this 2 more times before stopping. If you nudge the extrusion it does a single loop each time it is nudged (32’, 64’, 128’). But if you hook up and un-hook up the parameter, it will do 3 loops each time: 2’, 16’, 128’, 1024’.
So it seems that Revit is actually stopping the loop from getting out of control, which is good.  When I first hooked this example up, I wasn’t sure what was going to to happen.  Logically, I figured it might just loop until it crashed.
Another example, this one is actually a goalseeker
Family1: a cube that has a height parameter called height, value 10’, set to be equal to (angle / 1°) * 1', and angle currently is 10°
Load Family1 into host. Host a line by points from the top edge of the cube to the bottom corner of the cube, put a reporting angle on this line like so:
Look at looper_angle.rfa file from here.  Set Family1’s parameter “angle” equal to host family “angle”
First iteration:
By the 9th iteration it finds a rough balance and makes very small movements around 59 degrees and 59’:
More to come on this.


Vasari Talk last minute reminder: Imported Geometry


Feb 8: Dealing with imported geometry

Register now! Wed, Feb 8, 2012 11:30 AM - 12:30 PM EST

Questions on this topic? Post them here.

  • Summary: Very few Vasari projects start "from scratch." Most projects begin with some form of geometry or data from external sources. The methods you choose for importing data will depend on the source of the data and will affect how you approach setting up your project for proper analysis simulations.
  • Learning Goals: At the end of this session, you will be able to:
    1. Demonstrate how to properly import and manage external data with Project Vasari. 
    2. Demonstrate how to import 2D and 3D data from other applications such as AutoCAD, Rhino, and Sketchup into Vasari 
    3. Demonstrate how to use imported geometry to analyze solar and wind effects
    4. Demonstrate how to use imported geometry to simulate energy use




TinkerCAD is a free Chrome app that just rocks!  Primitives based modeling that has a really interesting approach to things like boolean operations, components, and workplanes.  I did manage to crash it once I got some complex cut and join operations going, but it is wicked satisfying to use.

Check it out at you office, then make you kids use it.  Then print out your stuff with their tie in to several 3d printing services!


Grant’s Tomb and Coffer Panels


Professor Jason Van Nest’s Special Studies class in the Architecture Department for New York Institute of Technology in NYC did this awesome model of Grant’s Tomb.

2012-02-05_0851ITurns out they needed a coffer dome panel.

Way back in September of 2009 I did a little coffer dome panel experiemt and was honored to be able to contribute it to the cause.


Along with just doing excellent modeling , the students that worked on the model needed to understand how to work together in a workset environment, not always an easy task. 

Great job everyone:

Samuel Blythe
Vinny Ciaramella
Jonathan Collado
Brian Connor
Labibe Draiby
Sanjay Effs
Miriam Hubbard
Aaron Kirchhoff
Steve Ricca
Alfonso Rodriguez
Lowell Stephens
Ted Solages
Mark Viggiano