✖=if(paramA=paramB,…,…)
パラメータタイプが異なる場合は直接比較することはできません。そう、Revitは単位にうるさいのです。こういうときは「魔法の/1」を使って
○=if(paramA / 1 = paramB, …,…)
とすればOKです。
【以上・以下の判断】
大きい小さいを比較する演算子は>,<,=のみであり、>=や<=を用いることはできません。これは「未満ではない」という理屈でnotを使って条件式を作ります。notは真偽の値を反転します。
例3
パラメータ名 パラメータタイプ
paramA 長さ
paramB 長さ
paramAがparamB以上である
✖=if(paramA >= paramB, …, …)
○=if(not(paramA < paramB), …, …)
【値の差が±1.0に納まっている】
値が±○○以内にあることを判断するには絶対値absを使います。
例4
パラメータ名 パラメータタイプ
paramA 長さ
paramB 長さ
paramA-paramBが±1未満である
○=if(abs(paramA - paramB) < 1 , …, …)
paramA-paramBが±1以内(1より大きくない)である
○=if(not(abs(paramA - paramB) > 1 ), …, …)
【〇〇より大きく〇〇より小さい】
値がある範囲に収まっているかどうかを判断するにはandを使って二つの式を結合します。
andの構文 and(式1,式2)
式1と式2がともに真ならば、真を返します。つまり両方成り立っている場合だけ真を返します。
例5
パラメータ名 パラメータタイプ
paramA 長さ
paramAが1より大きく10より小さい場合
○=if(and(paramA>1, paramA<10) , …, …)
paramAが1以上10以下の場合
○=if(and(not(paramA < 1), not(paramA > 10)),…, …)
paramAが1以上10未満の場合
○=if(and(not(paramA < 1), paramA < 10),…, …)
【条件式をはい/いいえのパラメータが受け取るとき】
条件式を「はい/いいえ」のパラメータが受け取る場合はifは不要です。
例6
パラメータ名 パラメータタイプ
paramA 長さ
paramB はい/いいえ
paramAが10より小さいとき
paramB = paramA<10
【範囲外】
ある範囲に値がないことを判断するにはORを使います。
orの構文 or(式1, 式2)
式1または式2のどちらかが真であれば真を返します。つまりどちらかが成り立っていればよい、ということです。
例7
パラメータ名 パラメータタイプ
paramA 長さ
paramAが0未満、または10より大きい
○=if(or(paramA<0, paramA>10) , …, …)
paramAが0以下、または10以上
○=if(or(not(paramA>0), not(paramA<10)) , …, …)
【二つ以上の式を判断する】
andとorは引数として式を2しか受け取ることができませんが、使い方を工夫すれば3つ以上の条件を判断することができます。
考え方のポイントは
-
☑真=1(0でない整数)
-
□偽=0
-
andは掛け算(式1×式2)----一つでも0があれば答えは0=偽
-
orは足し算(式1+式2)-----一つでも1があれば答えは0ではない=真
とすればわかりやすいと思います。
すべての式が成り立っていることを判断するには
and(and(式1,式2),式3)
--------(式1×式2)×式3
and(and(式1, 式2), and(式3, 式4))
--------(式1×式2)×(式3×式4)
一つでも偽=0があれば答えは0=偽です。
どれかが成り立っていることを判断するには
or(or(式1,式2),式3)
--------(式1+式2)+式3
or(or(式1, 式2), or(式3, 式4))
--------(式1+式2)+(式3+式4)
一つでも真=1があれば答えは0ではない=真です。
同上の内容は 下記のWebsite から参照です。
https://www.revitpeeler.com/·