É possível usar declarações condicionais em fórmulas para definir ações em uma família que depende do estado de outros parâmetros.
Com as declarações condicionais, o software insere valores para um parâmetro com base em se uma condição especificada foi satisfeita. Declarações condicionais são úteis em determinadas circunstâncias; no entanto, elas tornam as famílias mais complexas e devem ser usadas somente quando necessário.
Para a maioria dos parâmetros de tipo, as declarações condicionais são desnecessárias, pois o próprio parâmetro é uma declaração condicional: se este for o tipo, então defina este parâmetro para um valor especificado. Os parâmetros de instância são lugares mais produtivos para se usar declarações condicionais, particularmente quando elas são usadas para definir um parâmetro que não varia continuamente.
Uma declaração condicional usa esta estrutura: SE(IF) (<condição>, <resultado-se-verdadeiro>, <resultado-se-falso>)
Isto significa que os valores inseridos para o parâmetro dependem se a condição é satisfeita (verdadeiro) ou não satisfeita (falso). Se a condição é verdadeira, o software retorna o valor verdadeiro. Se a condição é falsa, ele retorna o valor falso.
As declarações condicionais podem conter valores numéricos, nomes de parâmetros numéricos e parâmetros Sim/Não. É possível usar as seguintes comparações em uma condição: <, >, =. Também pode-se usar operadores Booleanos com uma declaração condicional: E, OU, NÃO (AND, OR, NOT). Atualmente, <= e >= não estão implementados. Para expressar tal comparação, pode-se usar um lógico NÃO (NOT). Por exemplo, a<=b pode ser inserido como NOT(a> b).
A seguir se encontram fórmulas de amostra que usam declarações condicionais.
IF simples: =IF (Length < 3000 mm, 200 mm, 300mm)
IF com um parâmetro de texto: =IF (Length > 35', “String1”, “String2”)
IF com o AND lógico: =IF ( AND (x = 1 , y = 2), 8 , 3 )
IF com o OR lógico: =IF ( OR ( A = 1 , B = 3 ) , 8 , 3 )
Declarações IF embutidas: =IF ( Length < 35' , 2' 6" , IF ( Length < 45' , 3' , IF ( Length < 55' , 5' , 8' ) ) )
IF com condição Sim/Não: =Length > 40 (Observe que a condição e os resultados estão implícitos).
Os usos típicos de declarações condicionais em fórmulas incluem o cálculo de valores em matrizes e o controle da visibilidade de um elemento com base em um valor de parâmetro. Por exemplo, pode-se usar declarações condicionais para
No Revit, as matrizes somente podem ter um valor inteiro de 2 ou maior. Em algumas situações, pode ser útil criar uma fórmula condicional que mantenha um parâmetro de matriz em 2, mesmo se o valor calculado for 1 ou 0. Com tal fórmula, se o valor calculado da matriz for 2 ou maior, a fórmula retém o valor. No entanto, se o valor calculado for 1 ou 0, a fórmula altera o valor para 2.
Fórmula: Array number = IF (Arrayparam < 2, 2, Arrayparam)
Por exemplo, se há um parâmetro Luzes que deseja usar para controlar a visibilidade da geometria do montante secundário, é possível criar um parâmetro Sim/Não como MontSecVis e atribuir o parâmetro Visível na paleta de Propriedades para a geometria do montante secundário. Como o parâmetro MontSecVis é uma operação de Sim/Não (ou Booleana), a condição (IF) e os resultados são implícitos. Neste exemplo, quando a condição é atendida (verdadeiro), o valor do parâmetro MontSecVis é selecionado e a geometria do montante secundário fica visível. De forma contrária, quando a condição não é atendida (falso), o parâmetro MontSecVis é limpo e a geometria do montante não fica visível.
Fórmula: MontSecVis = Lights > 1