前提条件を使用すると、モデル内の処理の順序を明示的に制御できます。たとえば、あるプロセスの出力を別のプロセスの前提条件にすることで、1 番目のプロセスを 2 番目のプロセスの後に実行することができます。変数はいずれも、ツールを実行するための前提条件に指定できます。また、どのツールにも、複数の前提条件を設定できます。
例 1 - データ変数を前提条件として設定
この例では、関連のある 2 つの独立したプロセスを、一方のプロセスの前に他方のプロセスを実行するように前提条件を使用して接続します。1 つ目の一連のプロセスは、新しいファイル ジオデータベース内に新しいフィーチャ データセットを作成します。2 つ目のプロセスは、フィーチャクラスを調査領域にクリップし、出力を新しく作成されたフィーチャ データセットに書き込みます。
上のモデルをそのまま実行した場合は、処理の順序を制御する手段がありません。出力場所が作成される前に [クリップ(Clip)] ツールが実行されて、エラーとなる可能性があります。これを回避する 1 つの方法は、プロセスを右クリックして [実行] を選択する方法で、まず [ファイル ジオデータベースの作成(Create File GDB)] と [フィーチャ データセットの作成(Create Feature Dataset)] のプロセスを実行し、最後に [クリップ(Clip)] プロセスを実行します。
ただし、このようにツールを個別に実行する方法は、ModelBuilder 内でしか動作しません。モデルを ModelBuilder の外部で実行する必要がある場合、またはツールごとではなくモデル全体を一度に実行する必要がある場合はどうすればいいでしょうか。
前提条件を使用すると、モデル内の処理の順序を明示的に制御できます。下のモデルでは、新しい「フィーチャ データセット」変数を、[クリップ(Clip)] ツールの前提条件に設定しています。これにより [クリップ(Clip)] ツールは、新しいフィーチャ データセットが作成されるまで実行されません。
例 2 - Boolean 変数を前提条件として設定
上の例では、フィーチャ データセット変数をツールの前提条件として使用しました。Boolean 変数の前提条件は、データ変数(フィーチャ データセットやフィーチャクラスなど)の場合と動作が異なります。Boolean 変数を使用する場合、ModelBuilder はデータが作成されているかどうかを判断する代わりに、変数の TRUE または FALSE の値を読み取ります。値が TRUE の場合は、前提条件が満たされており、この条件に依存しているツールが実行されます。値が FALSE の場合は、前提条件がまだ満たされておらず、この条件に依存しているツールは実行されません。下の例では、Boolean 変数の「モデルの実行」が、ツールの前提条件に設定されています。
Boolean の前提条件変数はモデル パラメータとなり、モデル ツールのダイアログ ボックスを開いたときに公開されます。ツールのダイアログ ボックスで [モデルの実行] パラメータをオンにすると、変数が TRUE に設定され、モデルを実行したときにモデル内の依存するプロセス([フィールドの追加(Add Field)])が実行されます。[モデルの実行] パラメータをオフにすると、Boolean 変数は FALSE に設定されます。モデルを実行したときに、前提条件が満たされていないためモデル内の依存するプロセスは実行されません。パラメータがオフの場合、モデルを実行すると、「前提条件が間違っていたため、処理は実行されません」という警告のメッセージが表示されます。
別のタイプのモデル変数を作成する方法については、「変数の作成」をご参照ください。
例 3 - LONG 整数を前提条件として設定
long 変数(LONG 整数)による前提条件は、Boolean 変数の場合と同じように動作します。long 変数の値が正の整数である場合、変数は TRUE に評価され、この条件に依存しているプロセスが実行されます。変数が 0 または負の整数の場合、変数は FALSE に評価され、依存しているプロセスは実行されません。