2019年9月22日日曜日

フィルタ(2)AND/OR

条件判断

フィルタの条件判断はAND(且つ)とOR(又は)があります。ANDとORを使用すれば複合的な条件文を作ることができます。その考え方は「算数」に置き換えると簡単です。

ルール - AND/OR

  • AND------×(掛け算)
  • OR--------+(足し算)

条件判断       - TRUE/FALSE

  • TRUE     =1 (≠0)
  • FLASE    =0

ANDの例

下の図の例は壁の中で
  1. タイププロパティ[機能]の値が「外部」である
  2. タイププロパティ[幅]の値が「100以上」である
  3. インスタンスプロパティ[面積]の値が「100より小さい」
の三つのルールのすべてを満たしている壁を選択するフィルタです。このフィルタを実際に作成してみましょう。

手順


  1. [表示]タブ>[グラフィックス]パネル>[フィルタ]
  2. フィルタグループの新規作成
  3. 名前を「壁 外部 t100 100㎡未満」としてOK。
    フィルタを作成
  4. カテゴリグループでのみをチェック。
  5. フィルタ規則グループで下の図のように条件1を追加。
    タイププロパティ[機能]の値が「外部」である
  6. ルールを追加をクリックし、条件2を下の図のように設定。
    タイププロパティ[幅]の値が「100以上」である
  7. もう一度ルールを追加をクリックし、条件3を下の図のように設定。
    インスタンスプロパティ[面積]の値が「100より小さい」
下の図はこのフィルタをビューに適用して、前回のように青色に着色した状態です。
フィルタで着色
この場合、三つのルールがすべてTRUE=1であればANDは掛け算なので
1×1×1=1(≠0)
なので、TRUEと判断できますが、一つでもFALSE=0があると
1×0×1=0
でFALSEと判断されます。
もし、ORであれば、ORは足し算なので、一つでもTRUE=1があれば
1+0+0=1(≠0)
でTRUEと判断されます。
ORの場合は一つでもルールに合致すればTRUE

ルールを入れ子にする


3の条件を以下のように変更してみます。
  • インスタンスプロパティ[面積]の値が「100以上200以下」
これを実際に作成してみましょう。
  1. 三番目のルールを-をクリックして削除。
    ルールを削除
  2. セットを追加をクリック
    セットを追加
  3. ANDを選択し、ルールを追加をクリック
    ANDセットにルールを追加
  4. 下の図のように面積が100以上を追加。
    面積が100以上
  5. セット内のルールを追加をクリックし、面積が200以下のルールを追加
    ルールを追加
このように、ルールはつぎつぎと入れ子(ネスト)にすることができます。
ルールのネスト
理屈を理解すれば、複数のルールを組み合わせてより複雑なフィルタを作成することができます。