20130131

Export Vasari/Revit to Rhino



While sending data out of Rhino and into Revit is pretty commonplace, I've seen a bunch of situations where folks need to go from Revit to Rhino and run into trouble.  Data is imported and doesn't show up, imported geometry is faceted, or in some way not what you're looking for.

Luckily, it doesn't have to be like this, you just need to change a couple default settings.  Here's how to get a nice clean, smooth DWG into Rhino

Step 1:  Solids v. Polymesh

Strangely, the default setting for DWG exports is polymesh.  Assuming you want to bring in real smooth, accurate, analytic surfaces and solids, open up Export, Options, Export Setups DWG/DXF
 
 
Go to the "Solids" tab and change "exports solids as" from the default "Polymesh" to "ACIS Solids"


Step 2:  DWG Versions

Every 3 years, the folks who make DWG update the file format and often times it takes a couple releases for other companies to incorporate the new file formats.  If you are using Rhino 4, you will be able to import the 2007 version of DWG, if you are on Rhino 5, you can import 2010.  However, the default setting in Revit 2013 and Vasari is the 2013 version, which Rhino will not accept.

So, while you are still in the export options dialog, wander over to the General tab.  In the "Default export options", change the Autocad 2013 Format to 2010 or 2007 depending on what version of Rhino you are on.


 Alternately, you can also change the version while you are exporting


Either way works.

3.  WYSIWYG
Export is What-You-See-Is-What-You-Get.  Export a Plan view and you get some funny sliced shape.  Isolate or hide elements in a 3d view and you get what is on screen.  Knowing this, go to a 3d view, isolate/hide what you need or don't need and Export.  Import them into Rhino, and Unrollsrf, or Grasshopper, or Squish or whatever else you desire. 

Thanks
Z




20130128

Vasari Talk Session 25: The Vasari Beta splash screen

2013-01-21_2148

The latest Vasari Talk (Jan 22nd) has been posted!  If you missed it here’s the brief.  Download the dataset from here and follow along with the video.

“Description: In this episode, Zach Kron will dive deep into Vasari geometry and show you how to model the building on our Vasari Beta 2 splash screen. He will also show you how to make some interesting and challenging geometry from past splash screens.”

Learning Objectives:

  1. By the end of this session, attendees will be able to drive a parameter with a formula in a sample exercise.
  2. Attendees will be able to create a parameter that is a function of another parameter.
  3. Attendees will be able to modify the width of panels and mullions parametrically in a sample exercise.
  4. Attendees will be able to apply parametric panels and mullions to a façade and set their parameters based on their position on the façade.
2013-01-28_2036

20130120

Origami and The Context Aware Panel: being a good neighbor

SANYO DIGITAL CAMERA

I was looking at these fantastic modular origami tesselations and thinking (as I tend to) “Vasari Panel?  Sure!”

2013-01-07_2314

2013-01-19_0000

Turns out origami is hard!  One of the first issues that comes up is that each panel needs to have some amount of awareness about what its neighbor is doing.  In general, Revit/Vasari panels operate in isolation, each one’s behavior having very little, if anything to do with the panels that it shares edges with.  For most cases, this is fine, as the creation of seamless relationships can be handled by referencing shared point normals. In this case, however, there turn out to be more than one place where geometry in PanelA needs to reference the same geometry as PanelB. 

The kernel of this solution is a 9 point adaptive component that is repeated 4 different times over a surface. The center of a 9 bay grid defines the center of any given panel, and the remaining 8 reference the centers of all neighbors. 

2013-01-19_0822

With this solution in mind, let’s take a look at our origami pattern

2013-01-13_0803

If you break the pattern down into repeated elements, at first you can do the standard thing of identifying a rectangular set of points. 

2013-01-13_0804

Here I am identifying the low point of each module and just connecting the dots.

2013-01-13_0813

That module is built on a “seamless panel base”, where I just look at where are the lines intersect with an imagined cubic space projected off the surface of the form, and connect the dots.

3D View 1

2013-01-13_0827

Q.E.D., right?  Now we can all go back to doing important work, please?

NO!  This solution leaves out an important piece of information

2013-01-13_0822

Look carefully at the resulting pattern, and you will see a kink in what should be a straight line connection between the high points of the modules!

2013-01-13_0808

Each panel piece needs to REACH OVER into the neighboring panel and make a straight line connection between interior geometry in itself and interior geometry in the neighbor!

SANYO DIGITAL CAMERA

A minor detail?  No!  This simplicity is what lends clarity and readability to the pattern.

In a completely flat, regular system, this would be no problem, as there would be no kink.

3D View 1

But with irregular curvature, where angles are changing, you can’t pre-calculate where that reach-over is going to need to land.

What’s a  girl to do?

If you conceive of each high, square area as the center of each module, each panel needs to know about 4 other similar centers:

2013-01-13_0839

But with this configuration of 5 points, you can’t determine the extents of each cell.  For that you also need to get the geometry of the centers of the remaining 4 corner neighbors.

2013-01-19_0748

Therefore, for every one cell that gets placed, it must have one point to identify its center, and 8 to identify its neighbor’s placements.

2013-01-18_2242

So you have a 9 point adaptive component where point #5 represents the center of one square we will model, and the remaining 8 points represent the neighboring cell centers

2013-01-13_0905

If you connect #5 diagonally to the corner neighbors, you can derive the lines out from the center that will define the lowest points of the pattern. 

2013-01-18_2228

Imagine that points  2, 4, 6, and 8 will similarly be the center of their own high, square areas and connect them

2013-01-18_2224_002

Host points at he intersections and you will have the corners of the lowest points of the pattern.

2013-01-18_2224

These corners are where the panel will connect at the lowest point with its neighbor

2013-01-19_0751

Ok, head hurting?  Hang on, it gets worse.  This is a fully 3 dimensional pattern, that offsets from an arbitrarily curving surface.  So we need to attack the Z-direction by placing points on the horizontal workplane of each adaptive point and offsetting the desired thickness.

 2013-01-18_2247

Connect the diagonals again and we can define the high, square area.

2013-01-18_2302

Now we connect more dots to create the folds:

2013-01-18_2342 

One last piece.  We place 4 of these little monsters on our divided surface, overlapping so that each block of 9 control points relates to its neighbor.   Note that there are multiple areas of alignment in 3 dimensions of neighboring panels.

2013-01-18_2347

Select each of the 4 families, one at a time, and hit the Repeat button:

2013-01-18_2349

This will result in 4 different Repeater elements on the surface.

2013-01-18_2351

Tada!

There are still 3 missing features that are not solved with this.  1.  Edges only match up on surfaces that have planar panels: revolves, translation, single curvature, and flat surfaces. Paper will stretch, crinkle and bend a little, mine doesn’t.  2. The high, square areas do not rotate, that is, they stay in a gridded orthogonal relationship to each other.  In the actual origami example, they rotate against each other.  3. Perhaps more interestingly, there is no necessity for the panel elements to remain dimensionally static while only changing their angular relationship.  I think there is some interesting math to be done that might solve this last problem, and I can approximate it with some formulas that adjust the height of the family with changes in size of the cell, but it isn’t perfect.

unfold_loop

(animation made with BoostYourBIM’s Image-O-Matic and Gimp)

2013-01-11_2322

2013-01-19_0859

 

Download the family from here.  ContextPanel_seamless.rfa is a base family that can be used to make your own patterns that need to reference neighbors.  ContextPanel_hosted has the origami panel module hosted 4 times on a surface.  Select each one and Repeat for each to cover the surface.

Suggestions for improvements or totally alternate approaches welcome!

20130118

BoostYourBIM Contest and Prizes!

flap512

Do you want Harry the Revit API Guru to build you your very own custom Revit plug-in?  Now is your chance!  BoostYourBIM is offering a free custom API addin to the person who makes the best use of his brand new Image-O-Matic addin for Revit and Vasari.

Ok, that’s a lot of words.  Let’s break it down

BoostYourBIM:  blog written by one of the developers of the Revit API.  So, he has the chops.

Image-O-Matic:  an addin in for Revit or Vasari that will automatically write a sequence of numbers to a specified parameter or iterate through phases, dumping images as it goes.  Do a little post processing and you can animate your BIM!

Custom API addin:  this is the hard part to define, but it may be up to you to decide what it is.  Always wanted to place walls in the configuration of a Mandelbrot set?  Or dump all your curtain panel data to a spreadsheet in just the right way?  Fire up your mad skillz and win this contest!

Read the contest rules here, and Good luck.