TL;DR
IF(condition, value_if_true, value_if_false) lets a family choose between values based on a condition. Combine conditions with AND(), OR(), and NOT(). Both branches must return the same parameter type. Nest IFs for more than two outcomes, but stop at three levels — beyond that, switch to a lookup table. The three killer errors: missing units on constants, mismatched branch types, unbalanced parentheses.
Key Takeaways
- ✓IF has exactly three parts: condition, value_if_true, value_if_false.
- ✓AND(), OR(), and NOT() combine multiple conditions into one decision.
- ✓Both branches must return the same parameter type — length with length, number with number.
- ✓Three nesting levels is the practical maximum; a lookup table replaces deeper stacks.
- ✓IF cannot set materials directly — use the two-geometry visibility workaround.
- ✓A Yes/No condition like Width > 900mm is itself a formula — no IF needed for pure toggles.
Arithmetic makes a family resize. Conditional logic makes it decide. A door that flips its swing angle, a bracket that upgrades itself when the load span grows, a rail that appears only above a certain height — all of it runs on one function with three parts.
The Syntax
| Part | What it is | Example |
|---|---|---|
| condition | Anything that evaluates to yes/no | Width > 900mm |
| value_if_true | Returned when the condition holds | 800mm |
| value_if_false | Returned otherwise | 600mm |
The one unbreakable rule: both branches must return the same parameter type. A length in one branch and a bare number in the other makes the whole formula invalid.
AND, OR, NOT — Combining Conditions
AND() requires every condition to be true, OR() requires at least one, NOT() inverts. They nest inside each other for compound rules — “fire-rated and (wide or tall)” — but each added operator doubles the mental load. Keep compound conditions to two operators where you can.
Five Real Use Cases
1 — Door Swing Direction
2 — Visibility Above a Height Threshold
A top rail appears only when the family is tall enough (assign to the geometry's Visible property):
Note there is no IF here — a comparison already returns yes/no. Wrapping it in IF(x, 1, 0) is redundant. Chapter 7 is entirely about this pattern.
3 — Minimum Dimension Guard
4 — Hardware Upgrade by Weight
5 — Conditional Material (the Workaround)
Material parameters can't be driven by IF. Model the geometry twice with different materials and toggle visibility instead:
Nested IFs: The Three-Level Ladder
Level 1 — two outcomes
Level 2 — three outcomes
Level 3 — four outcomes
Past level 3, adding one more size means rewriting the entire chain, and nobody — including future you — can safely maintain it. That is exactly the job of lookup tables: hundreds of conditions, zero nesting.
The Three Errors That Break IF Formulas
1 — Missing Units on Constants
2 — Mismatched Branch Types
3 — Unbalanced Parentheses
Count opening and closing parentheses before saving — they must be equal. When an error won't reveal itself, the systematic isolation method in the debugging chapter finds it every time.
Frequently Asked Questions
Chapter 5 of 10
Families that make decisions for you
All 10 formula chapters with worked examples, HD Video Vault, and the Formula Cheat Sheet. 40% off at $18.
