Parametric Patterns I: ClearNames, PlaceHolders, and Controllers


Welcome to the first post where I sink my teeth into Robert Woodbury’s Parametric Design Patterns. As I mentioned in the previous post, I’ll try and address all 14 topics, and I’m going to start with the easy ones. I’m going to use Project Vasari and Revit pretty interchangeably, as the same things can be accomplished in either.


This is really more of a friendly suggestion than anything and doesn’t really need an example. The basic idea in ClearNames is that you should name your parameters, controls, familys, elements, anything that you have an option to name, with something that is meaningful. For instance, don’t name an offset parameter on a point something like “point”. You will likely add lots of points, and this is far too generic. Also, don’t name it “the point parameter that creates an offset to the big purple dinosaur” as this cumbersome. ‘Nuff said.


“Use Proxy objects to organize complex inputs when making collections.” This concept is also wonderfully trivial to illustrate in Revit or Vasari, because just about anything is already a placeholder for other things by default. One family can be swapped for another family, forms can be edited to swap lines for curves. We will touch on this a little more as a background to dealing with jigs, but the essence is to represent your complex details of a larger project with minimalist elements to keep your model light and understandable. I might try and revisit this idea, but for now, let’s move on to juicier stuff.


“Control (a part of) a model through a simple separate model”. This is where Vasari can really have some fun. Most of the time folks who are trying to flex models are going back and forth to properties pallets and dialogs to create transformations in the model, but it doesn’t have to be like this. If you take a few minutes to set up simplified geometry in your 3d working environment, you can have a lot of fun, make lots of decision and test many alternatives with the swish of a mouse. Watch the videos (only the first has narration, double click to watch on youtube at full screen) and download the control examples from here:

Equalizer Controller

With the Altitude/Azimuth controller, look at hosting conditions. Ref lines are hosted on top of ref lines to create very stable angular relationships.

Altitude/Azimuth Controller

The Multiple Circles example uses 2 divided surfaces with only one set of gridlines. A trick: the surface itself is ever so slightly non-planar to make the UV coordinates behave properly. If it was planar, you would get a very unsatisfying grid.

Multiple Circles Controller


  1. Hi Zach, regarding your equalizer controller video, would it make a difference if you placed the formulae under HeightA: HeightA = ControllerA*2 as compared as the one you illustrated in the video where you placed the formulae under ControllerA: ControllerA = HeightA/2? In my understanding the Controller should always be taken as reference, thus the Height should take reference to it. (That's just my opinion) Thanks in advance for your answer! Your videos are GREAT!

  2. @arie11a0 Either way works, it's really just a matter of preference.