式で条件文を使用し、他のパラメータの状態に依存するアクションをファミリ内で設定することができます。
条件文を使用した場合、ソフトウェアは指定された条件が満たされるかどうかに応じて、パラメータに値を入力します。条件文は、状況によっては便利ですが、ファミリが複雑になるため、必要な場合にのみ使用するようにします。
ほとんどのタイプ パラメータでは、タイプ パラメータ自体が条件文のようなものなので、条件文は不要です。このタイプの場合は、パラメータを指定された値に設定します。インスタンス パラメータでは、条件文をより有効に使用できます。連続的に変化しないパラメータを設定するために条件文を使用する場合は特に有効です。
条件文では、IF (<条件>, <結果が真の場合>, <結果が偽の場合>)という構造を使用します。
これは、パラメータとして入力した値が、条件を満たす(真)か満たさない(偽)かによって決まることを意味しています。条件が真なら、真に設定されている値が返されます。条件が偽なら、偽に設定されている値が返されます。
条件文には、数値、数値パラメータの名前、はい/いいえのパラメータを含めることができます。以下の比較を条件文で使用することができるのは、<、>、= です。条件文に、AND、OR、NOT のブール演算を使用することもできます。<= と >= は使用できません。このような比較を使用する場合は、論理 NOT を使用することができます。たとえば、a<=b は NOT(a>b) と入力します。
以下に、条件文の使用法についていくつかの使用例を示します。
単純な IF 文: =IF (Length < 3000 mm, 200 mm, 300 mm)
テキスト パラメータを含む IF 文: =IF (Length > 35', “String1”, “String2”)
論理 AND を含む IF 文: =IF ( AND (x = 1 , y = 2), 8 , 3)
論理 OR を含む IF 文: =IF ( OR ( A = 1 , B = 3 ) , 8 , 3 )
埋め込み IF 文: =IF ( Length < 35' , 2' 6" , IF ( Length < 45' , 3' , IF ( Length < 55' , 5' , 8' ) ) )
はい/いいえの条件を含む IF 文:=Length > 40 (条件と結果はいずれも暗示されています。)
式における条件文の一般的な使用法として、パラメータの値に基づく配列の値の計算と要素の表示のコントロールがあります。たとえば、条件文を使用して次の処理を行うことができます。
Revit では、配列は 2 以上の整数値のみを保持することができます。状況によっては、計算値が 1 または 0 の場合でも、配列パラメータを 2 に維持する条件式を作成すると便利なことがあります。そのような式を使用すると、計算された配列値が 2 以上の場合、式はその値を保持します。しかし、計算値が 1 または 0 の場合、式は値を 2 に変更します。
式: Array number = IF (Arrayparam < 2, 2, Arrayparam)
たとえば、格子ジオメトリをコントロールするために使用する Lights パラメータがある場合、MuntinVis のようなはい/いいえのパラメータを作成し、それを格子ジオメトリの[プロパティ]パレットで表示パラメータに割り当てることができます。MuntinVis パラメータは、はい/いいえ(ブール型)の操作なので、条件(IF)と結果はどちらも暗示されます。この例では、条件が満たされる場合(真)に MuntinVis パラメータの値が選択され、格子ジオメトリが表示されます。条件が満たされない場合(偽)、MuntinVis パラメータはクリアされ、格子ジオメトリは表示されません。
式: MuntinVis = Lights > 1