Sgambellurian Physics and Phorm Phinding: Nucleussimo!

[Edit: Nucleus is no longer available in Vasari since it went to Beta]
Marcello Sgambelluri has done it again.  Again we are awed by (and a little worried for) Marcello. This time around he is showing his mad Nucleus skillz in Vasari
Sgambellurian Physics
The haiku-like explanation of the video by the author:
“total time
...30 hours (not including family building)
Revit mass families used as colliders and hosted onto Nucleus surfaces”
Based on this description, and seeing the behaviors in the video, I have experimented a bit and found that, yes, there is quite a bit you can do by hosting collider elements on Nucleus surfaces.  A bit of genius, a bit of madness, it keeps things interesting. (Did we mention that the head, the plane, and the elephant are all Marcello’s native Revit geometry?)
Marcello is the BIM Manager at John A Martin and Associates Structural Engineers in LA. He builds families to Beta Test Revit in his spare time and has also spoken at AU about Revit.
Summary Haiku:

Put forms on point planes

Nucleus gravity fiat

Autumn leaves fall up


Surface Analysis

This post is a summary for part of a class that Robert Manna and I taught at Autodesk University in November of 2010, and a more detailed explanation of the work shown in this earlier post.  You can watch a video of the full presentation here, and also download a more complete document of the whole classe.
A note on making your own tools:
At some point all software will fail to supply you with the tools you need right out of the box. The challenge of computational design is often to figure out how to get what you have to do what you need. Revit’s Conceptual Modeling environment allows you to make very complex forms right out of the box, but sometimes you have to do a little legwork to achieve rational, build-able results.

Using the massing tools in conjunction with a custom panel for “analysis” it is possible to begin to understand the limitations of freeform designs and to improve building elements that would be challenging, cost prohibitive or otherwise impossible to construct.

Measuring Surface Deformation

One of the limitations designers must face is the ability of building materials to flex out of plane. Usually it is not a matter of a material either needing to be absolutely flat or being infinitely flexible, but rather identifying an allowable tolerance. This exercise shows how much flexibility a form will demand of the materials that are used to construct it. The “surface deformation” panel explained here is not meant as the final panel that will be used in a curtain system, rather it is meant to be a panel that can give the user feedback about the overall form they have designed. This is a tool to check assumptions and make larger design decisions early in the process before changes get really expensive.

Let’s start by looking at a surface that is geometrically relatively simple, a “ruled surface” that is created by connecting one arc to another.


While formally simple, the analysis colors indicate that almost 30% of the panels (see in red) are more than 10” out of plane over 8’. This can indicate a difficult or impossible fabrication condition that would be good to identify early in the process.


Starting off, set up your relationships:

We’re going to end up with an isolated curtain system that will later be incorporated into a larger project. It helps to distinguish between the “Whole Project” and the “expensive façade” by isolating the façade element in a separate file, but there are more and less integrated ways to do this, depending on your project needs.

1) Create a mass form for the building. Create a form in such a way that you can later manipulate and refine the form. One way is to have your form as a separate mass.rfa, and load it into another family that will host it and your divided surface. This allows you to freely manipulate the surface and only get processor intensive analysis feedback on the surface only when you want it.


2) Divide the surface based on UV Coordinate grids: Using the out of the box UV coordinate grids, you begin to break up the form into sub elements. Adjust the spacing of the divisions to be a Maximum (in “layout” properties) of 8’x8’ (in “distance” properties).


3) Tabular Representation of Deformation: Now that you have set of comparably sized (but not identical) four sided divisions of the overall surface, you can look at their relative deformation over the surface.

It is helpful at this point to ask “what is deformation?” Given that any triangle is a plane, you can think of deformation in quadrilaterals as the distance that any one point is out of plane with the other thee.


If you can measure this difference, you can measure deformation. In the context of a curtain panel by pattern in Revit, this can be constructed using out of the box tools.

a) Three point Invisible Workplane Hack: define a plane with a triangle between 3 of the points. Uncheck its visibility parameter.


b) Infinite line: Create a very long line using offset points as mentioned in the previous exercise; one point is offset in the positive direction, another in the negative direction. Connect these two offset points with a single line (note: in the line’s properties, under “reference”, make it “not a reference”, otherwise the selectable area of your divided surface will be unbearably large.) Uncheck its visibility parameter.


c) Host a point “by intersection”: place a point on the long line, select it, pick “host by intersection” from the options bar, and pick the triangular surface you made. Your hosted point will now be both constrained to the host line and aligned with the plane defined by your triangle.


d) Reporting parameters. On one of the vertical workplanes of the hosting adaptive point, make a dimension between the adaptive point and the point hosted by intersection. Make this dimension a reporting parameter. This reporting parameter will read out a value associated with each panel instance. This number is the amount each panel is out of plane, your panel’s deformation.


e) Shared parameters: making this measurement a shared parameter results in the ability to schedule the value of all your panels and identify which ones are too far out of plane.

f) Identify deformed panels in schedules in project. Load into a project and create a schedule of panels and deformation.

4) Visual Representation of Deformation: Tabular data is all well and good and makes the accountants happy. But we are a visual people; we want to see our data in our geometry. For this you need to have stronger reporting parameters that can drive geometry and create visual representations of deformation.

Not all reporting parameters are created equal. Reporting parameters made between “host” elements (generally these are the non-deletable elements that are baked into a template) can be used in formulas to drive geometry as well as schedule. Reporting parameters between non non-host elements can only be used in schedules. However, in adaptive components, any adaptive point is considered to be host geometry, and the distances between them can be used to make these “stronger” reporting parameters.

a) Create an adaptive component with five points, connect four of the points with reference lines to create a rectangle, and add a fifth line to the fifth point to make a “tail”.

b) Make a reporting parameter along the workplane of the tail between the 2 adaptive points. This reporting parameter is capable of driving formulas in the family, and therefore creating geometric and visual changes, in addition to being scheduled. This tail will be used later to measure deflection.


c) Use the Reporting parameter in formulas: In this case the reporting parameter is used to decide the value of a series of if/then formulas that turn on and off the visibility of 5 surfaces, each of which is a different color. If the value is more than 10”, only the red surface is visible, if it is between 7.5 and 10”, yellow, etc. It could also be used to create subdivisions of the surfaces, or turn on and off triangular panels for these cells, or any other number of visual or geometric representations


d) Load and place the Adaptive Component into the panel: The four points of the rectangular surface are placed on the adaptive points of the curtain panel; the end of the tail is hosted on the point hosted by intersection. As the panel goes more out of plane, the tail on the adaptive component gets longer, and its colors change.



e) Panelize your surface with this nested component and you will get a visual readout of your surface’s deflection.


f) Now you can make small or large changes to your underlying surface, reload it into your “analysis environment”, to fine tune your form. Often small changes will have large effects on planarity conditions, and designers can make informed early decisions about costs and aesthetics.


Generalizing the panel

This tool will allow you to interrogate many forms. Depending on the desired size of your panels and the range of allowable deflection of your materials, you will need to adjust the range of the if/then statements. This particular panel gives pretty good feedback on 8x8’ panels across a range of surfaces.

Once you get used to how it works, it can be used to quickly check assumptions about the surface planarity of a range of projects or to communicate problem areas to team members. Some people just don’t believe that surfaces like torus’s can be broken down into planer quadrilateral panels, or that ruled surfaces broken into quadrilaterals are necessarily non-planar.



These cases show the same panel instantiated in a number of simple and complex surfaces, all divided into “max spacing”=8’. While the panel sizes are not identical, there is a close enough approximation to get meaningful results from the panel. Feedback like this at early stages of design allows for rapid tinkering with forms, testing assumptions, and fine tuning geometry to make more constructible building components.


Download the Panel and supporting files from here.  It isn’t perfect, but use it as a starting point for your own uses.

Watch the entire class here.


Crop Circles

3D View 1 copy

I’m a big fan of  crop circle designs.  Whatever those pesky aliens are up to out in those wheat fields is besides the point.  Bovine studies, probes, mind control, whatever.  Clearly the most important aspect of this hyper advanced group of visitors is their choice of fonts for their graffiti.  Or landing gear configuration.  Whichever, love the mark making guys, keep up the good work!

So a while back I Revited up an invasion fleet and printed them out as a collection of ink stamps.




I for one welcome our new alien overlords.


Cutting Holes in Panels


Sounds uncomplicated, right?  You can do it with a drill, you can do it with an ice-fishing saw, so how come you can’t do it with a #%&$ curtain panel by pattern?  I see lots of people fail by drawing a circle on the “Level 1” workplane of a panel family and make a void through a solid that is extruded from the built-in reference lines, then try and constrain it or otherwise wrestle the cylindrical void into submission.  The problem here is that “level 1” is almost meaningless once you get the panel hosted into a divided surface.  Level 1 essentially becomes a slippery, interpreted “best fit” plane that Vasari calculates between the adaptive points.  I recommend that you forget Level 1 for almost everything and build off the points and lines that are baked into the panel family.

Cutting a hole in a panel




Lonely?  Looking for people who understand you and feel your pain?  Tired of telling your cat about your triumphs and failures with workplanes?  Having difficulty maintaining relationships?

Join us at http://projectvasari.com/

No judgment, no labels, just labeled dimensions.


That ain’t normal! Diagnosing point behavior


You just finished making this lovely Adaptive Component, a robust triangulated truss, standing up in a proud structural posture:


you continue placing it in a host file and <sad trombone>, “flop” . . .  it does THIS!




OR, OR, OR . . .  THIS!!!



Indeed.  I am regularly baffled by AC behavior, BUT I will testify that on inspection it is almost always doing something aggressively logical.  To figure out what that logic is I made this little diagnostic tool to interrogate normals and local coordinates for adaptive points placed on different surfaces.


The construction is 3 points, each hosted on one of the 3 workplanes of an adaptive point, offset, and connected by a different colored line.


Relatively simple, but when loaded into a host it illustrates behaviors that are usually invisible, or baffling, or both.

For instance, look at what it shows for different hosting behavior on this single surface.


A freaking mess, right?  Remember, red was “up” in the Adaptive Component family.  Again, you may say, WTF. In this video I will try and show some of what I understand to be normal “normal” behaviors on points, nodes, surfaces, edges, solids, and workplanes in Revit and Vasari.

Diagnosing Point Behavior Part 1

So now that we have an understanding of how normals behave in any particular hosting condition, let’s look at our truss to understand the behavior.

Diagnosing Point Behavior Part 2

Download the diagnostic tools and sample family shown in the video.

So, now that you understand why the truss DOESN’T work, you might want to know how you would make it work.  This is another post entirely, and until I can get around to it, let me point you to Robert Manna and my Paneling and adaptive component class that we taught at Autodesk University 2010.  This class covers some of the same territory, but is more focused on solutions.  There is a step by step walk through making a more tightly controlled truss-like element on pages 21 to 28 of the handout, and datasets that accompany the documentation.




Danelle Briscoe, a professor at the University of Texas Austin, is doing AWESOME work with her students at the  UT School of Architecture. Check out these Flickr streams dealing with designs done with a variety of software and prototyping platforms.

Information Controlled Erosion (Nov. 18, 2010)

Beauty + the BIM (Jan. 18, 2011)


Hackalicious: Windform Buildings in Vasari 1.1


The Vasari 1.1 release has a new Wind Rose Climate Analysis functionality. A wind rose is graphical device to help designers, meteorologists, engineers, and others understand the general wind speed, direction and distribution at a particular site.  It’s a bit sneaky, as average wind conditions are very sensitive to local conditions, such as natural features like ponds and rivers, as well as buildings, trees, and other obstructions.  So a wind rose derived from data gathered at a local airport, for instance, might be remarkably inaccurate to predict the average wind conditions in the downtown area 2 miles away.  It is, however, a good starting point to consider the opportunities a particular location might present for such things as natural ventilation.

We at Buildz Amalgamated Inc., LLC, are undeterred by these caution inducing  factoids.  We see the information embodied in the wind rose as an opportunity to mash-up data from specific locales with parametric goodness to conceptualize polemic Architectural Designs.  In the following video, the humble wind rose is mercilessly hijacked to drive building form in ways it was not intended.

Hacked Wind Rose

One reminder: don’t overwrite the base wind rose if you go and mess with it.  Save out your hacked wind to a new location!

If you don’t want to hack up your own wind rose, download mine from here.  The basic workflow for using it is as follows:

Open the windRoseHack.rvt file (the disc in the middle just helps size the wind rose) and sign in to Services in the Menu under the “V” if you haven’t already.   Pick the weather station closest to your site location from Analyze>Location. Open the Windrose Dialog in Analyze>Ecotect Wind Rose in Climate Analysis.  Pick the time of year you are interested in or just hit “Show as Family”.  Chose the Outer Radius version of the wind rose.   Ignore the scary warning about mesh geometry.

2011-03-01_21252011-02-17_2251You should get a strange lumpy form instead of the nice flat colorful wind rose.  If you select this family, you will see in the instance parameters grouped under “Data”, a set of controls (they are a little different from the video):



buildingHeight sets the maximum height the building will reach, hostScale controls the radius of the overall wind rose geometry.  Inverse set to 0 will have tall masses facing into the wind, 1 will have the lowest areas facing the winds.  p1 and p2 control the pointy-ness of the resulting mass.   From 0 to 1, the further p2 and p1 are from each other , the more faceted the form will be.  The closer they are, the smoother it will be.  



What you do with this is up to you.  However, if you like it (or don’t like it), you should build your own to accommodate whatever your needs are.