ModelBuilder の論理ツールの使用例

データの存在

次の例は、[データの存在 (If Data Exists)] ツールを使用して、モデル パラメーターから取得した入力フィーチャが存在するかどうかをチェックします。[データの存在 (If Data Exists)] ツールは、2 つのブール型出力 [True] および [False] を備えています。入力が存在する場合、[True] 出力変数および前提条件が True に設定されるため、[フィールド演算 (Calculate Field)] ツールを実行することができます。[False] 出力変数が True の場合 (つまり、データが存在しない場合)、モデルは別のデータセットのコピーを作成し、この代替のデータセットを入力として使用して [フィールド演算 (Calculate Field)] ツールを実行します。

ModelBuilder の [データの存在 (If Data Exists)] ツール

フィールドの存在

次の例は、[フィールドの存在 (If Field Exists)] ツールを使用して、与えられた名前のフィールドがデータセット内にすでに存在しているかどうかをチェックします。[フィールドの存在 (If Field Exists)] ツールは、2 つのブール型出力 [True] および [False] を備えています。フィールドが入力データセットに存在しない場合、[False] 出力変数および前提条件が True に設定されるため、[フィールドの追加 (Add Field)] ツールを実行することができます。[True] 出力変数が True である場合 (つまり、フィールドが存在する場合)、ツールが [True] 分岐に接続されていないため、モデルは終了します。

ModelBuilder の [フィールドの存在 (If Field Exists)] ツール

選択セットの存在

次の例は、[選択セットの存在 (If Selection Exists)] ツールを使用して、選択したフィーチャが入力に存在するかどうかチェックし、存在する場合は選択したフィーチャの数をチェックします。まず [属性検索 (Select Layer By Attribute)] を実行した後に、[選択セットの存在 (If Selection Exists)] が使用されます。[選択セットの存在 (If Selection Exists)] ツールは、2 つのブール型出力 [True] および [False] を備えています。選択したフィーチャが入力に存在する場合、[True] 出力変数および前提条件が True に設定されるため、[統計情報のサマリー (Summary Statistic)] ツールを実行することができます。[False] 出力変数が True である場合 (つまり、フィーチャが選択されている場合)、ツールが [False] 分岐に接続されていないため、モデルは終了します。

ModelBuilder の [選択セットの存在 (If Selection Exists)] ツール

座標系の種類 (If Coordinate System Is)

次の例は、[座標系の種類 (If Coordinate System Is)] ツールを使用して、特定の座標系がデータセットに存在するかどうかをチェックします。[座標系の種類 (If Coordinate System Is)] ツールは、2 つのブール型出力 [True] および [False] を備えています。このモデルは、ジオデータベース内のフィーチャクラスについて反復し、各フィーチャクラスが特定の投影座標系を持っているかどうかをチェックします。各フィーチャクラスが指定された座標系を持っていない場合、[False] 出力変数および前提条件が True に設定されるため、[投影変換 (Project)] ツールを実行することができます。[True] 出力変数が True である場合 (つまり、入力データセットが指定された座標系を持っている場合)、ツールが [True] 分岐に接続されていないため、モデルは終了します。

ModelBuilder の [座標系の種類 (If Coordinate System Is)]

データ タイプ

次の例は、[データ タイプ (If Data Type Is)] ツールを使用して、入力データセットのデータ タイプをチェックします。[データ タイプ (If Data Type Is)] ツールは、2 つのブール型出力 [True] および [False] を備えています。このモデルは、入力データ モデル パラメーターがシェープファイルまたはフィーチャクラスのいずれであるかをチェックし、それに応じてデータを処理します。入力がシェープファイルである場合、[True] 出力変数および前提条件が True に設定されるため、最下部の複数の [フィールドの追加 (Add Field)] ツールおよび [フィールド演算 (Calculate Field)] ツールの分岐を実行することができます。[False] 出力変数が True である場合 (つまり、入力データがシェープファイルではない場合)、モデルは最上部の分岐を実行します。

ModelBuilder の [データ タイプ (If Data Type)] ツール

フィーチャ タイプ

次の例は、[フィーチャ タイプ (If Feature Type Is)] ツールを使用して、特定のデータセットがポイント フィーチャクラスであるかどうかをチェックします。[ロケーションの追加 (Add Locations)] ツールは、入力としてポイントのみを受け取るため、ポイントが入力としてモデルに提供されない場合、最初に入力フィーチャをポイントに変換することができます。[フィーチャ タイプ (If Feature Type Is)] ツールは、2 つのブール型出力 [True] および [False] を備えています。入力フィーチャがポリゴンまたはラインである場合、[True] 出力変数および前提条件が True に設定されるため、[フィーチャ → ポイント (Feature To Point)] ツールを実行して、フィーチャをポイントに変換することができます。[False] 出力変数が True である場合 (つまり、入力フィーチャがポリゴンでもラインでもない場合)、モデルは入力フィーチャを、最初にポイントに変換せずにそのまま使用します。

モデルは [ブランチのマージ (Merge Branch)] ツールも使用して、[True] 分岐および [False] 分岐の両方をマージし、ツールの同じチェーンをいずれかの分岐に対して実行できるようにします。

ModelBuilder の [フィーチャ タイプ (If Feature Type Is)] ツール

フィールド値

次の例は、[フィールド値 (If Field Value Is)] ツールを使用して、特定の値が入力データの属性フィールドに存在するかどうかをチェックします。[フィールド値 (If Field Value Is)] ツールは、2 つのブール型出力 [True] および [False] を備えています。指定されたフィールドにテスト値が存在する場合、[True] 出力変数および前提条件が True に設定されるため、[レイヤーのシンボル情報を適用 (Apply Symbology From Layer)] ツールを実行することができます。テスト値が属性フィールドに存在しない場合、[False] 出力変数が True になり、シンボルを適用する前に、[テーブルの結合 (Add Join)] ツールが実行されます。

ModelBuilder の [フィールド値 (If Field Value Is)] ツール

行数

次の例は、[行数 (If Row Count Is)] ツールを使用して、入力データセット内のレコード数をチェックします。[行数 (If Row Count Is)] ツールは、2 つのブール型出力 [True] および [False] を備えています。入力データセットが複数のフィーチャを含んでいる場合、[True] 出力変数および前提条件が True に設定されるため、[ディゾルブ (Dissolve)] ツールを実行することができます。入力データセットが複数のフィーチャを含んでいない場合、[False] 出力変数が True になり、最下部のブランチ内のツールが実行されます。

ModelBuilder の [行数 (If Row Count Is] ツール

空間リレーションシップ

次の例は、[空間リレーションシップ (If Spatial Relationship Is)] ツールを使用して、別のレイヤーのフィーチャとの空間リレーションシップを持っているフィーチャがレイヤーに存在するかどうかをチェックします。[空間リレーションシップ (If Spatial Relationship Is)] 論理ツールは、2 つのブール型出力 [True] および [False] を備えています。この例では、犯罪データのいずれかが学区と交差している場合、[True] 出力変数および前提条件が True に設定されるため、[フィーチャ レイヤーの作成 (Make Feature Layer)] ツールおよび [空間検索 (Select Layer By Location)] ツールを実行することができます。[False] 出力変数が True である場合 (つまり、選択フィーチャとの指定された空間リレーションシップが入力フィーチャに存在しない場合)、ツールが [False] 分岐に接続されていないため、モデルは終了します。

ModelBuilder の [空間リレーションシップ (If Spatial Relationship Is)] ツール

値の評価

次の例は、[値の評価 (If Value Is)] ツールを使用して、現在の不動産リストから安価な住居を検索します。モデルには、3 つの入力パラメーターがあり、潜在的な購買者は [プロパティのタイプ][最大価格]、および ブール型選択の [価格の融通がききますか?] の値を入力できます。[値の評価 (If Value Is)] 論理ツールは、潜在的な購買者が値の選択に融通がきくかどうかをチェックします。[値の評価 (If Value Is)] ツールは、2 つのブール型出力 [True] および [False] を備えています。融通がきく購買者の場合、[True] 変数と前提条件が True に設定されるため、[属性検索 (Select Layer By Attribute)] により、利用可能な家のリストからすべての家を選択する前に、指定した価格に $100000 バッファーを別に追加できます。融通がきかない購入者の場合、[False] パラメーターと前提条件が True に設定されるため、2 番目の [属性検索 (Select Layer By Attribute)] ツールにより、購入者が指定した価格範囲内の住居のみを選択できます。

ModelBuilder の [値の評価 (If Value Is)] ツール