I posted about Randomizer a while back. I have since seen it used to randomize the colour of panels. One way to do this is to use a integer or numeric Shared Parameter and View Filters (ie. randomize from 1 to 5, have your View Filter apply Red to 1, Yellow to 2 etc). However, could this principle be applied to change the actual Material too?
Philip Chan provides one answer: In the component family environment, Revit won’t allow you to formulate the material parameter. All you can do is to set the material as a parameter; in the formula field, you won’t be able to input formula like you can for other type of parameter (e.g. Length). I recall a trick from Alfredo Medina that you can parametrize a material with conditional statement using nested family. So, I ended up rigging up a curtain panel family with a setup that looks like this:
From Philip Chan’s blog: The concept is simple, I make a Generic family (it can be any category actually) as a solid (in this case, just a simple extrusion), let the family intercept the curtain wall, then use “Cut Geometry” to cut out the curtain panel. Once I made all the cut in the curtain wall, I have a yes/no parameter to control the visibility of the solid so that I can “turn off” the solid. As a result, it would appear that the curtain wall is cut out by a void. The good news is you can use the same family to make multiple cuts and it will work on the mullions as well.
Another nice workaround by Philip Chan – if you want to change one of Revit’s built-in Type Parameters (derived from a Family Template, such as Door Fire Rating) to an Instance Parameter, you just have to take the Family on a little round trip to a more flexible Family Category.
New Door based on Door Family Template
Switch to Generic Model Type
Change built-in Type Parameter for Fire Rating to Instance