È possibile utilizzare istruzioni condizionali nelle formule per definire azioni in una famiglia che dipendono dallo stato di altri parametri.
Mediante le istruzioni condizionali, per un dato parametro vengono immessi valori diversi a seconda che la condizione specificata venga soddisfatta o meno. Le istruzioni condizionali sono utili in determinati casi, tuttavia rendono le famiglie più complesse e devono essere utilizzate solo quando è necessario.
Per la maggior parte dei parametri di tipo tali istruzioni non sono necessarie, perché il parametro di tipo è simile a un'istruzione condizionale: se è definito un determinato tipo, allora il parametro viene impostato su un valore specificato. I parametri di istanza si prestano meglio all'utilizzo di istruzioni condizionali, soprattutto quando tali istruzioni vengono usate per impostare un parametro che non è continuamente variabile.
Le istruzioni condizionali utilizzano la seguente struttura: IF (<condizione>, <risultato se vero>, <risultato se falso>)
Ciò significa che i valori immessi per il parametro dipendono dal fatto che la condizione sia soddisfatta (vero) o non soddisfatta (falso). Se la condizione è vera, viene restituito il valore vero. Se la condizione è falsa, viene restituito il valore falso.
Le istruzioni condizionali possono contenere valori numerici, nomi di parametri numerici e parametri Sì/No. Si possono utilizzare i seguenti elementi di paragone: <, >, =. È anche possibile utilizzare operatori booleani quali AND, OR e NOT. Al momento, <= e >= non sono implementati. Per eseguire un paragone di questo tipo, è possibile utilizzare NOT. Ad esempio, a<=b può essere reso come NOT(a>b).
Di seguito vengono riportati esempi di formule che utilizzano istruzioni condizionali.
Soltanto IF: =IF (Lunghezza < 3000 mm, 200 mm, 300 mm)
IF con un parametro di testo: =IF (Lunghezza > 35 mm, “Stringa1”, “Stringa2”)
IF con AND logico: =IF ( AND (x = 1 , y = 2), 8 , 3 )
IF con OR logico: =IF ( OR ( A = 1 , B = 3 ) , 8 , 3 )
Istruzioni IF incorporate: =IF ( Lunghezza < 35' , 2' 6" , IF ( Lunghezza < 45' , 3' , IF ( Lunghezza < 55' , 5' , 8' ) ) )
IF con condizione Sì/No: =Lunghezza > 40 ( Notare che sia la condizione sia i risultati sono impliciti)
Tra gli utilizzi più comuni delle istruzioni condizionali nelle formule vi sono il calcolo dei valori di matrici e il controllo della visibilità degli elementi in base al valore di un parametro. Ad esempio, è possibile utilizzare istruzioni condizionali per:
In Revit, è possibile assegnare alle matrici solamente un valore intero uguale o maggiore di 2. In alcuni situazioni potrebbe essere utile creare una formula condizionale che mantenga un parametro di matrice con valore 2 anche se il valore calcolato è 1 o 0. Con tale formula, se il valore di matrice calcolato è uguale o maggiore di 2, la formula mantiene tale valore. Se invece il valore calcolato è 1 o 0, la formula sostituisce il valore con 2.
Formula: Numero matrice = IF (Param matrice < 2, 2, Param matrice)
Ad esempio, se si dispone di un parametro Luci che si desidera utilizzare per controllare la visibilità della geometria dei listelli, è possibile creare un parametro Sì/No, quale ListelloVis, e assegnargli il parametro Visibile nella tavolozza Proprietà degli elementi per la geometria del listello. Poiché il parametro ListelloVis è un operatore Sì/No (o booleano), sia la condizione (IF) che i risultati sono impliciti. In questo esempio, se la condizione viene soddisfatta (vero), il valore del parametro ListelloVis viene selezionato e la geometria del listello è visibile. Se, invece, la condizione non viene soddisfatta (falso), il valore del parametro ListelloVis viene annullato e la geometria non è visibile.
Formula: ListelloVis = Luci > 1