Dans les formules, les instructions conditionnelles permettent de définir des actions dans une famille en fonction de l'état d'autres paramètres :
le logiciel définit la valeur des paramètres en fonction du respect de certaines conditions. Le recours aux instructions conditionnelles peut s'avérer pratique dans certains cas. Toutefois, ces instructions ont tendance à complexifier les familles. Il est donc recommandé de limiter leur utilisation.
Elles sont inutiles dans la plupart des paramètres de type. En effet, ces paramètres sont déjà comparables aux instructions conditionnelles, dans la mesure où leur valeur dépend du type défini. Les instructions conditionnelles s'avèrent en revanche précieuses avec les paramètres d'occurrence, notamment lorsqu'ils définissent un paramètre dont la valeur est constante.
Les instructions conditionnelles s'articulent autour de la structure suivante : IF (<condition>, <résultat-si-vrai>, <résultat-si-faux>)
Les valeurs spécifiées pour le paramètre dépendent du respect de cette condition (vraie ou faux). Si la condition est vraie, la valeur Vrai (True) est renvoyée. Si la condition est fausse, la valeur Faux (False) est renvoyée.
Les instructions conditionnelles peuvent contenir des valeurs numériques, des noms de paramètre numérique et des paramètres Oui/Non. Vous pouvez utiliser les opérateurs de comparaison suivants dans une condition : <, >, =. Vous pouvez également utiliser les opérateurs booléens suivants dans une instruction conditionnelle : AND, OR et NOT. Actuellement, les opérateurs <= et >= ne sont pas pris en charge. Pour exprimer ce type de comparaison, utilisez à la place un opérateur NOT logique. Exemple : a<=b peut être entré sous la forme NOT(a>b).
La liste ci-dessous contient des exemples de formules incluant des instructions conditionnelles.
Instruction IF simple : =IF (Length < 3000mm, 200mm, 300mm)
Instruction IF contenant un paramètre de texte : =IF (Length > 35', “Chaîne1”, “Chaîne2”)
Instruction IF avec opérateur logique AND : =IF ( AND (x = 1 , y = 2), 8 , 3 )
Instruction IF avec opérateur logique OR : =IF ( OR ( A = 1 , B = 3 ) , 8 , 3 )
Instructions IF imbriquées : =IF ( Length < 35' , 2' 6" , IF ( Length < 45' , 3' , IF ( Length < 55' , 5' , 8' ) ) )
Instruction IF avec une condition Oui/Non : =Length > 40 (La condition et les résultats sont implicites.)
Le calcul des valeurs de réseau et la visibilité d'un élément en fonction de la valeur d'un paramètre sont deux utilisations fréquentes des instructions conditionnelles dans les formules. Par exemple, les instructions conditionnelles permettent d'effectuer les opérations suivantes :
Dans Revit, la valeur des réseaux doit être un entier supérieur ou égal à 2. Dans certains cas, vous devrez peut-être créer une formule conditionnelle garantissant une valeur de paramètre minimale de 2, même lorsque la valeur calculée est de 1 ou 0. Si la valeur calculée est supérieure ou égale à 2, la formule conserve cette valeur. En revanche, si la valeur calculée est égale à 1 ou 0, la formule indique la valeur 2.
Formule : Numéro de réseau = IF (Paramréseau < 2, 2, Paramréseau)
Par exemple, si vous souhaitez déterminer la visibilité de la géométrie de meneau en fonction du paramètre Lumières, vous pouvez créer un paramètre Oui/Non (par exemple, VisMeneau) et l'attribuer au paramètre Visible de la palette Propriétés pour la géométrie de meneau. Le paramètre VisMeneau correspond à une opération booléenne (Oui/Non). La condition (IF) et les résultats sont donc implicites. Dans cet exemple, si la condition est respectée (true), le paramètre VisMeneau est sélectionné et la géométrie de meneau est visible. Inversement, si la condition n'est pas respectée (false), le paramètre VisMeneau n'est pas sélectionné et la géométrie de meneau n'est pas visible.
Formule : VisMeneau = Lumières > 1