インライン変数置換

ModelBuilder では、変数の値またはデータセット パスを別の変数で置換することができます。この場合、置換する変数の名前をパーセント記号で囲みます (%VariableName%)。このように変数を置き換える方法を、インライン変数置換と呼びます。

たとえば、変数 名前 の値が Wilson である場合、データセット パスを C:\Data\Output.gdb\Clipped_%Name% と指定すると、パスが C:\Data\Output.gdb\Clipped_Wilson に解決されます。

ModelBuilder は、次の形式のインライン変数の置換をサポートしています。

  • モデル変数 - モデル内の任意の変数です。
  • システム変数 - 変数 %n% をモデルの反復カウンターとして反復ワークフローで使用できます。変数 %t% は、出力が生成された時刻を YYYYMMDDHHMMSS の形式で示します。
  • ワークスペース環境 - モデル データの管理を簡単にするために、ModelBuilder では 4 つのワークスペース環境 (%scratchGDB%%scratchFolder%%workspace% および %scratchWorkspace%) を使用できます。

モデル変数の置換

次に示すモデルでは、ワークスペース変数の Data WorkspaceC:\Data.gdb という値が設定されています。[投影変換 (Project)] ツールのパラメーターで、変数名をパーセント記号で囲むことにより、このワークスペースの場所がインライン変数として置換されます。実行時に、%Data Workspace% が実際の変数値の C:\Data.gdb で置換されます。

インライン変数としてモデル変数を使用

反復子とともに使用

モデル変数の置換は、ModelBuilder反復子を使用する際に特に重要です。反復子の [フィーチャクラスの反復] を実行すると、ワークスペース内の各フィーチャクラスのパスと名前を表す出力変数が作成されます。Name 変数の値を使用して、出力の Projected Feature Class のパスを作成できます。ツールを実行すると、%Name% がフィーチャクラスの名前で置換されます。

インライン変数として反復子出力を使用

モデル ツールへのユーザー入力

モデル変数の置換は、ユーザーが入力した値を直接モデル内部のツールに渡す際に役立ちます。たとえば、次に示すモデルの Parcel ID は、モデル ツールを [ジオプロセシング] ウィンドウから実行するときに指定するモデル パラメーターです。この変数は、[属性検索 (Select Layer By Attribute)] ツールの [式] パラメーターで、"Parcel" = '%Parcel ID%' として使用されています。ツールを実行すると、式の %Parcel ID% が指定したパーセル ID (この例では 9) で置換され、ID が 9 のパーセルだけが選択されます。

[属性検索 (Select Layer By Attribute)] ツールでのインライン変数の使用
メモ:
この例の Parcel ID 変数の値は文字列です。文字列型のインライン変数を式で使用する場合は、変数を引用符で囲む必要があります ('%string variable%')。数値を表すインライン変数は、引用符で囲む必要はありません。

2 番目の例では、変数の置換を使って [フィールド演算 (Calculate Field)] ツールのパラメーターに値を渡しています。以下のモデルには Class FieldValue という 2 つの変数があります。Class という値がある Class Fieldフィールド名パラメーターとして使用されます。Forest という値がある Value 変数はパラメーターとして使用されます。[フィールド演算 (Calculate Field)] ツールを実行すると、Class フィールドが値 Forest を取得して Value 変数に保存します。

[フィールド演算 (Calculate Field)] ツールでのインライン変数の使用

[値の計算 (Calculate Value)] ツールでの使用

[値の計算 (Calculate Value)]ModelBuilder ユーティリティで、Python 式に基づいて値を計算し、その値をモデルで使用できます。モデル変数の置換を使用して、モデル変数の値を [値の計算 (Calculate Value)] の Python 式に渡すか、モデル内の他のツールの計算値を格納している出力変数の名前を使用します。

次のモデルでは、2 つの数値変数 (住人の数を表す Number of Residents と、1 人当たりの年間のゴミの量を表す Waste Per Person Per Year) が使用されています。これらの変数をパーセント記号で囲んで、[値の計算 (Calculate Value)] ツールの式で使用できます。[値の計算 (Calculate Value)] ツールを実行すると、変数名がそれぞれの値で置換され、乗算により Total Waste Per Year (1 年間のゴミの総量) が計算されます。

[値の計算 (Calculate Value)] ツールでのインライン変数の使用

ファイル拡張子を使った変数の置換

変数が拡張子付きのファイル (例: elevation.tif) をポイントしており、インライン置換を使用してこの変数を別のツールの出力パスに含める必要がある場合、出力では誤って出力名に *.tif 拡張子が含められます。そのような場合は、[パスの解析 (Parse Path)] ツールを使用してファイル名 elevation だけを取得できます。その後、[パスの解析 (Parse Path)] ツールの出力の [名前] 変数を、次のツールへのインライン置換として使用できます。

システム変数の置換

ModelBuilder には、モデルで使用して現在のモデルの反復 (%n%) と時刻 (%t%) を表すことができるシステム変数が用意されています。

このシステム変数 %n% は、モデルに反復子が含まれている場合に、現在のモデルの反復処理を表します (1 回目の反復処理が 0 になります)。次の例では、[For] 反復子を使用して、モデルを 4 回反復処理しています。[バッファー (Buffer)] ツールの出力は、ツールへのフィードバックとして入力に使用されています。モデルは反復処理を行い、各反復で出力を作成します。%n%[バッファー (Buffer)] の出力名に使用して、各反復の出力に新しい名前を付けています。

インライン変数 %n% の例

変数 %t% はツールの出力が作成された時刻を示しています。たとえば、データ バックアップのために毎日実行されるようスケジュールが設定されているモデルの場合、変数 %t% を使ってタイム スタンプ付きの出力を作成してバックアップ日を示します。

インライン変数 %t% の例

ワークスペース環境

ModelBuilder の 4 つのワークスペース環境を使って、モデル内のデータ管理を簡略化できます。モデル パラメーターのワークスペース環境を使って、[ジオプロセシング] ウィンドウからモデルを実行できます。

環境使用法位置推奨される使用法

テンポラリ ジオデータベース

%scratchGDB%

Project Folder\scratch.gdb

中間出力

テンポラリ フォルダー

%scratchFolder%

Project Folder\scratch

ファイルベースの中間出力

現在のワークスペース

%workspace%

[現在のワークスペース] 環境設定

ジオプロセシング ツールの入力と出力

テンポラリ ワークスペース

%scratchWorkspace%

[テンポラリ ワークスペース] 環境設定

中間出力

たとえば、ツールの出力が %scratchGDB%\CopyToScratchGDB に指定されている場合は scratch.gdb ジオデータベースが作成されます。このジオデータベースが存在していない場合は、テンポラリ GDB 環境ジオデータベースに出力 CopyToScratchGDB が作成されます。

インライン変数 %scratchGDB% の例

以下の例で、ツールの出力が %workspace%\CopyToWorkspace に指定されている場合、[現在のワークスペース] 環境場所に出力 CopyToWorkspace が作成されます。

インライン変数 %workspace% の例