Wednesday, January 14, 2009

Parametric Design with Type Catalogs in Revit

I created a draft of this topic some time ago and figured it was time to complete it.  The focus stems from a quick study we performed for the spire design of a tower on which our office was working.  This tutorial will show you how to use type catalogs for Revit families to quickly study numerous iterations of a parametric family.  Today there are new tools to help drive Revit via Excel, but I thought this was a neat trick requiring no special programming or scripting knowledge.

Even though this example illustrates a tower spire, the same techniques can be applied to anything using a custom parametric object.

The Family

Blog-Spire-1 Blog-Spire-2

The first step in this process was to create a base parametric family.  In this case, the fundamental unit was a vertical section in which a blend is created between two octagons twisted by 22.5 degrees (above left).  The key to establishing a parametric relationship to a polygonal shape is to first create a 2D Detail Component - in this case, the octagon (above right) - and place it before creating the 3D blend.  After placing 2 octagons, one for the bottom sketch and one for the top sketch of the blend, I created the blend and locked the sides of the blend to the 2D octagons.  The last part is to determine which parameters will be driving the shape.  In this case, the top and bottom profile will each be receiving a unique value (when stacked, the bottom diameter will be the same as the top, but we'll cover that in the Type Catalog).  I added values for the bottom and top diameter and connected each one to each of the two instances of the 2D octagon placed in plan.  As shown below, the parameter is called "r3d" because we were using some existing geometrical data being generated from a mathematical script.


The Type Catalog


The complete spire design consisted of many of the base section stacked vertically with the radii slightly adjusted to form the overall shape.  As a one time setup, I needed to place a unique TYPE of the family at each elevation as shown below:


To accomplish this based on just a single parametric family, I used the data provided by a colleague in Excel to create a Type Catalog. We collaborated to make sure the data was organized according to the stacked elements and I simply added the header row as required for Revit to read it properly (see Revit's Help for specifics).  From Excel, the data needs to be saved as a TXT file with the same name as the Revit RFA file.  Once all the types were loaded into the project, I performed a one-time placement of each individual type.

Design Iteration

Once the setup work described above was completed, exploring various iterations is as simple as creating related mathematical expressions in Excel.  We can either use a control value with a multiplier or drag new series of numbers over the originals.  Once we re-save the TXT file from Excel, we reload the family and all the types - however, you MUST be sure to check the option to reload the values for existing types.