Let’s say you have a family that has shape handles for instance dimensions (Length Parameters). What if you want to use it for quick prototyping, and then switch that same family into a version that uses Type based parameters?
Here’s how I went about it:
Change all existing Reference Planes to “Not a Reference”
Create new Reference Planes
Create new instance parameters bound to those Reference Planes
Lock one of the planes on each Dimension to existing origin planes
Create a corresponding set of Type dimensions
Create a set of Yes / No parameters for “Use Type for …”
Create formula like: if(Use Type for X, x type, x instance)
Apply it to the original parameters (the ones that are driving geometry):
How to Use:
Place the family
Resize using the shape handles (instance dimensions)
Create a Type
Modify the type Values and Tick the “Use Type” box
At this point, the Shape Handles are still visible, but only the Type values are used for the geometry.
Chris Price has been pushing the limits. Check it out: “What I found was Revit would crash at around 580 conditional statements in a single formula… Surely Autodesk should know someone would try and do this, lol!
So how to get around this limitation, my first thought was to try and use “And” and “OR” conditions to try and reduce the number of required conditions. However, this was going to be extremely tedious and there would still be 168+… So then I decided to simply split across a couple of parameters. EG: I had 500 conditions in one parameter then linked to a different parameter with the remaining conditions. SOLVED!
I did note a large performance hit when changing parameters in the family editor. Changing any values would take 5-15 seconds. However, testing in a project and the changes are instant! So not sure why performance is fine in a project.”
Nice tip from Revit Rants on how to round values within a family – and it allows much greater flexibility as to the rounding increment. In the example below, Chris uses ROUNDUP to round to a 5mm degree of precision. You could combine his method with Shared Parameters to ensure that the resulting value is schedulable (make Param2 a shared parameter in the example given below):
Quote: I have a parameter called “Param1” that I want to drive “Param2” from.
However – it is also a good example of what happens if you don’t create a fix for when an array drops to only one item. You need to formulaically stop this from happening, by doing something like this:
It is currently not possible to evaluate a text string in a conditional statement. You can have a conditional statement report a text string, but not check text and base a condition on it. via RevitCity.com | Help with If then statement