条件分岐① 基本 ~だったら△

IF関数(if文)は条件が成立するか否かで値が決まる条件分岐の中でも最も基本的な関数です。


書式

 if(条件式 , 選択肢1 , 選択肢2)

表示する値を条件に合わせて分岐させる関数で、提示した条件に合えば一つ目の選択肢1の値、条件に合わなければ二つ目の選択肢2の値をパラメータの値として表示します。
以下の様な表現の方が分かり易いでしょうか(*‘∀‘)↓
 if(条件 , 条件に合う時に選択する値 , 条件に合わない時に選択する値)

式の使い方の予備知識

条件分岐のIF関数についての説明の前に知っていて欲しい事を「式を活用」にまとめてあります☆彡

どんな時にIF関数を使うの?

パラメータの値に相関関係がある場合は、式を使って自動的に値が入力できる事を前述しましたが、条件により結果が分岐する場合は単純な記述では対応できません。その時に条件分岐に対応できる関数式「IF関数」を使います。

ここでif関数の書式を再度確認


IF関数は四則演算の様な数値の計算を行う関数ではなく、もしも~だったらどうするのかを決める分岐の関数です。
「~だったら」の判定を行う部分が条件式になり、条件式に合うか合わないか、結果は二つにひとつなので結果の選択肢は選択肢1と選択肢2の常にふたつになります。

選択肢の考え方

IF関数には選択肢が二つありますが、どちらに該当するかを考える時に「選択肢1か選択肢2のどちらか」と考えずに「選択肢1か、選択肢1以外」と考えるのがポイントになります。

条件式の作り方

条件式は、条件分岐の核となる重要な部分です。考える中心は自動入力させたいパラメータの値が何を軸にしていて、分岐点はどこにあるのかという事です。

例えば「H」は「W」が500より小さい場合は「W」と同じ値で500以上の場合は「W+100」になるとします。この場合軸になるのは「W」です。そして分岐点は500よりも小さいかどうかになるので「<500」が分岐点になります。
上記からWが500より小さいかどうかで値が決まる条件式は「W<500」となります。

選択肢の作り方

選択肢は定数でも、数式でも大丈夫です。
またファイル内の他のパラメータを使う事もできます。

選択肢で表す結果はそのまま入力される値になるので設定したパラメータが求める種類の値になる様にします。選択肢の単位が違うと「単位が違うからできないよっ!」とRevitに怒られてしまうので要注意!

構文の例

パラメータ「H」の式に記述すると、自動的に記述した式に合った値がHに表示されます。記述の例を幾つかあげましたのでご参考にしてください。

①パラメータ「W」が500より小さければ定数「300」500以上なら「600」の場合
 if(W<500, 300 , 600)
※条件文:W<500
※選択肢1:300 選択肢2:600
★500以上という記述は式内には出てこないが、IF関数の条件は「条件式」か「条件式以外」の2択なので条件が500よりも小さいなら、必然的に他は500以上という事になります。

Wが500よりも大きかったので選択肢2の600がHの値になっています。


②パラメータ「W」が500より大きければ値は「W」と同じ、500以上なら「W-100」の場合
 if(W>500, W , W-100)
※条件文:W>500
※選択肢1:W 選択肢2:W-100
Wが500よりも大きかったので選択肢1のWがHの値になっています。


パラメータ「W」が500ならば「D」と同じ値、500以外なら「D+100」の場合
if(W=500, D , D+100)
※条件文:W=500
※選択肢1:D 選択肢2:D+100
★式にはファミリ内にあるパラメータが使えます。複数のパラメータが混在していても大丈夫ですがパラメータの種類が違うと前述したエラー表示がでるので要注意。


分岐を増やしたい!!

条件式の内容に現状が合致するか、しないかの分岐なので、得られる結果も選択肢1と選択肢2の2つのうちのどちらかになります。

しかし実際にはもっと分岐を増やしたい場合も出てきます。その場合は選択肢の中に更に分岐を含めてIF関数を入れ子構造にします。入れ子にすることで分岐は無限に増やしていく事が可能です。詳しくは条件分岐② 条件分岐を複数設ける を参照してください。

条件式に入力できるもの

条件式に記述できる値
  • 数値
  • パラメータ
  • はい/いいえのパラメータ
条件式内で使える演算子
  • = (イコール)
  • < (小なり)
  • > (大なり)
条件式で使えない演算子
  • ≦ (小なりイコール:以下)
  • ≧ (大なりイコール:以上)
  • <= , >= も使えません
もし「Lが1000以上の場合にHは100、そうでなければHは200」としたい場合は、以上にあたる演算子が使えないので以下の様に対応します。

if(L≧1000, 100 , 200)→ ✖ 設定できない
if(L<1000, 200 , 100)→  ◯ 設定できる
≧(以上)の演算子は使えないので、より小さいを表す<(小なり)を使って条件式を作ります。設定時に選択肢1と2の記述を間違えないように気を付けてください。

※以上、以下はNOT関数と組み合わせて条件式を作る方法もあります。



Revit2020