20120516

Paper Models

2012-05-15_2143

Hey look!  Real stuff! 

2012-05-15_2051

Made from fake stuff!

2012-05-15_2007

User Question:  Can Revit/Vasari unfold my geometry so that I can make a paper study model? 

I get this question all the time and the answer is a resounding “No!  Tough beans!”

However, I do have a simple formula for solving this problem: 

Revit Panels + Pepakura = Awesome

Pepakura is a hobby papercraft software that unfolds and tabs your 3d data.  Just import any compatible file (obj, dxf, mqo, 3ds, lwo, stl, kml, kmz, dae) hit the “unfold” button and hope for the best.  They have a free download that allows you to experiment pretty heavily before deciding to invest the $38 for a fully registered product (that can save and export files).

With the above model I had some trial and error getting to this relatively simple unfold2012-04-10_2136

This afternoon I got out my glue and scissors and assembled it in about 15 minutes:

IMG_20120515_132908IMG_20120515_140258

IMG_20120515_142022

I am sure that you, dear reader, with your patience and exacto knife, can do better.

However, before exporting your form, you need to do some prep. 2012-05-15_2041

If you just export the full smooth model to stl (Vasari has a built in stl export) and unfold, it is just a mess of hairy triangles.  STL is a triangulated mesh format, and will tessellate the hell out of your model.

2012-05-15_2132

2012-05-15_2024_001

However after panelizing with a simple rectangular panel, you get this from an STL. 

2012-05-15_2101

A couple of things to note on this.  My form is a scale translation surface, which means it can be panelized entirely with planar quadrilaterals. If I just panelized any old freeform surface, I would be exporting lots and lots of doubly curved surfaces, which means lots of triangles for an stl file.

So a slight tweak of this scale translation surface from this 2012-05-15_2050

where my lofted profiles are parallel

2012-05-15_2154

To this,

2012-05-15_2051

where my profiles follow the path.

2012-05-15_2153

This small change will result in non-planar faces. In Pepakura your unfold will be like this:

2012-05-15_2058

WTF?  Well, each one of these little panels from your model is in fact a crazy mess of triangles trying to cover your doubly curved panel surface.

2012-05-15_2135 Frankly, it’s a wonder that Pepakura makes as much sense of it as it does. This is also a pretty good predictor of the chaos that trying to actually build this form will cause with your contractor, owner, finances, and sanity.  Scale Translation is your friend, trust me.

An alternative is to panelize in Vasari with triangles.  Triangles, the always capable, generalizable, cover-any-surface–planar solution, can be controlled by adjusting the divided surface resolution to your taste, then exported.

2012-05-15_2115

2012-05-15_2116

I’m sure that there are other, more professional options for this.  However, to do this exercise I spent a grand total of  $0 (Vasari at $0.00 per seat, and Pepakura trial at a similar figure).  If it works for you, splurge for the $38 registration fee. 

20120511

cuboctohedron haiku

cuboctahedrons

quasiregular

(Archimedean Solid)

polyhedron, Bitch

20120507

Repeat and Divide Prt I: curved panels

2012-03-23_1141_4bay_arcs

Buildings are not monolithic things . . . if there is one thing you can say about all buildings (cave dwellers and freaky 1970’s Gunnite structures aside) it is that they are made of many, many tiny parts all glommed together.  In one way or another, our built environment is made of repeated elements in space.

Given this, why doesn’t our BIM have a unified method to array/repeat/distribute/etc elements in space?!?!?!? 

Well, the Repeat and Divide functionality that is new in Revit 2013 is not the Great Unified Solution, but it is pretty damn awesome anyway. 

User Question:  I have a mullion that needs to follow the curvature of my form.  Both curtain system and curtain panel by pattern functionality facet my form.  How can I get back to smooth curvalicious goodness?

2012-03-23_1431

With a few exceptions, the Divided Surface, Curtain Panel by Pattern, and Curtain System functionalities reduce smooth surfaces to facetted ones.  While this is often exactly what people might want, sometimes you might want to subdivide a surface into smoothly curving parts. 

2012-03-23_1417

This video walks through a couple varieties of smooth paneling options

Curved Panels

Download the example files from here.

20120424

Programming Programming

2012-04-05_1416

Buildz is very pleased to welcome Lilli Smith for this guest post.  Lilli is a Principal User Experience Designer at Autodesk, which means she researches and defines the look, feel, and function of the products so that software developers can implement them. While she has contributed to a huge number of Revit features over the years, today she is stepping out of her comfort zone to explore the world of code authoring. 

Lilli here. I'm an architect and longtime Revit/Vasari product designer and sit right next to Zach here in the factory.  I've been thinking a lot about building space programming lately. It's a conceptual design activity that is so ripe for computer programming. Like Zach, I am an architect not a coder.  Of course I do have geek tendencies, work for a software company, and have access to a lot of great coding minds so sometimes I do attempt to dabble.  Inspired by some of the scripts in Nathan Miller's Revit API Notebook, I set out to see if I could figure out how to turn a building program from an excel spread sheet into a model in Vasari using Darren Thomas's Revit Python Shell. I liked that with the Python shell you could quickly cut and paste code, save, and run the script immediately - no compiling or other hurdles. I also really appreciated Nathan’s Python examples as I would have never been able to get started without them since my Python knowledge was pretty much non-existent last week. 

[You can download and follow along with these files.]

I started with a simple family Space.rfa which contains a box and some parameters as well as 14 materials with color names (Red, Blue, Green, etc) that I used for the space “color” parameter. I set up the materials because it was easier for me to just create them once in the family than to figure out how to make and set them using the API. I figured that 14 colors were enough for my immediate purposes and I could always add more or get programmatically more fancy.

clip_image001

The first script MakeSpaceTypes.py does the following in Space.rfa:

1. Reads SchoolProgram.csv

2. Creates a type for each space type (Gym, Cafeteria, Library, Classroom, etc)

3. Set parameters to variables in file

Nathan gave me a little preview of this post on dealing with external data that really helped me get this first script working. I still got really stymied by figuring out how to deal with different data types like materials,  strings, and integers though.  My developer friends had to help me a bit here.

After loading the family into a project, I can run the second script place3D.py which places the defined quantity of each type separated by width and length, and at a defined floor height.  Again, my developer friends helped me figure out how to nest the loops properly.  However, being able to experiment with different things quickly by making edits, saving, and immediately running the script, was key to helping me learn how some of the code worked.

clip_image001[4]

Wah lah!  This is a helpful way to quickly visualize the size of a building program, get a kit of parts into a model and then arrange the blocks on a site to start creating a building.  You could also concurrently do energy simulations to see how much it matters if say your Cafeteria is on the south or north side of your building.  Want to change the proportions of a space?  No problem, just adjust the type and all the instances will update.  Use Vasari alignment locking to keep spaces aligned property as their type dimensions change or just replace everything with the script once they proportions have been tweaked.

To make sure the script would work on any program (given the right format of course), I also tried it on HospitalProgram.csv.  The hospital contains spaces on more floors and illustrated how spaces can also be placed three-dimensionally.  

clip_image001[6]

Of course, all of the Vasari/Revit capabilities of filters and schedules can be used on the model to study the program in different ways.  Here any space type containing "Public" is colored red for example.

clip_image001[8]

clip_image002

In the future, it would be fun to figure out different ways to place the spaces - perhaps based on different groupings or other parameters.  It would also be nice to be able to do the placement part in a visual programming tool like Ian Keogh's Dynamo so that it would be easier to programmatically wire up new possibilities.

Download the space planning Vasari files and python scripts here.

Download the Vasari2.5 RevitPythonShell addin from here.

See Nathan Miller’s RPS examples here.

20120403

Vasari Talk: Visual Programming in Vasari and Revit with Dynamo

2012-03-22_0958

Wednesday, April 4, 2012 11:30 AM - 12:30 PM EDT

Summary: We will demonstrate how Project Vasari and Revit can utilize two emerging trends in conceptual design to explore design variations: visual programming and design optimization.

Learning Goals: At the end of this session, you will be able to:

  • Explain what visual programming is.
  • Demonstrate how to use Project Vasari with the open source visual programming environment Dynamo.
  • Create a sample  flexible parametric model that responds to an automated feedback loop.
  • Design a sample project optimized for local environmental conditions.

Register Now!

Watch Previous Sessions

20120320

Vasari Talk: Formula Foo

2012-03-20_1433

I’m going to be leading our free webinar tomorrow (Wednesday), talking about using formulas in Vasari families.
Register now! Wed, March 21, 2012 11:30 AM - 12:30 PM EST

Questions on this topic? Post them here.

Summary: Parameterizing a dimension? Easy. The fun really begins when you manipulate and even create geometry using formulas.

  • Learning Goals: At the end of this session, you will be able to
    • Use basic Revit/Vasari formula syntax including conditionals, operators, rounding, and math constants such as sin, cosine and pi.
    • Use some simple formulas to manipulate a parametric massing family to explore various permutations
    • Reference parameters from a nested family in a formula

    Edit:  Let’s try something new.  I’m going to do something like this tomorrow.  You can watch ahead of time and then have questions for tomorrow.

    Formulas in Families

  • 20120315

    Vasari 2.5 released with converging line bug

    What’s wrong with this picture?2012-03-15_0913

    Well, for one, if you infinitely extend parallel lines running along element edges, they will either converge on a horizontal plane projecting out from the viewer, or at a vertical plane extending at a right angle to the the horizontal plane!

    2012-03-15_0914

    Shouldn’t it look like this?

    2012-03-15_0931

    I mean, come on Vasari! How hard is it to keep your lines parallel? Now my working views have all of this sense of depth and space. Urgg!

    AND, unlike Camera views, that are not editable, my perspective view is all cluttered up with dimensions and controls.

    2012-03-15_0916

    So now I’m all, like: “you want me DESIGN in this view or something!?!?”

    2012-03-15_0921

    Answer: Well . . . yeah. That’s kinda what we’re shooting for.

    Download the new release from here.