Tuesday, October 12, 2010

Helix


A helix is actually a very simple shape for parametric modeling. Think of it as a segment of a shell that is rotated and translated (offset) with each increment. You can make one in Autodesk Revit very easily.

Create a family with a generic model. You can make an extruded box drawn in an elevation view. I drew a reference line to define an angle through the family center. Rotate the box to align with the reference line. Create a parameter for the angle. Make sure that its type is "angle". Draw a angular dimension on the reference line and associate it with the angle parameter. Create an index and a angle_increment. Create a formula for calcuating the angle of rotation from the index and angle increment. That's all there is to the family. (I have added some extra parameters in anticipation of changing the radius of the helix and the size of the patch.)


In a project file, you can insert the helix facet. Insert 20 or 30 copies. Change the index of each copy and it will spin around the axis to the right location.

Monday, October 11, 2010

Simple parametric family in Revit


One of the coolest things about Autodesk Revit is the ability to make shapes that are governed by formulas. This is the essence of algorithmic design, and while several other tools on the market are more flexible and powerful than Revit in this regard, there are interesting things one can do in Revit's BIM environment.

There are several concepts that one must grasp. First, a new Revit family should be drawn using reference planes and references lines. It is easier to impose constraints on the reference planes than it is on the model lines and model geometry (model lines tend to lock to reference planes and points by default and it can be unpredictable or unwanted.) Use dimensions to establish the essential geoemtric relationships of your family, such as lengths and angles. Second, the Revit family must have named parameters. You associate these named parameters with the dimensions and angles in your geometry and model. Third, there must be an "index" value that triggers the formula. Typically you will type in the index value and then the formula will calculate the geometry parameter. Finally, you must enter a formula using the index (or indices) that will calculate a geometric relationship.





Once a family has been created in this way, you can insert multiple instances of it into your project and then set different values for the index. The geometry will alter for each instance based on the formula.

Below you will see the same project file after changing the formula in the beam family.






Here it is with the cosine determining the angle of the beam. (I am sure that I have not done this in the simplest way, but I added the extra calculated parameters just to convert the units of the parameters so that the formula would not complain about "inconsistent units". Apparently the cos function requires that the input value must be in degrees. Input value in integer or number does not work.)