インライン モデル変数置換の例

モデル内の変数はいずれも、変数名をパーセント記号で囲むことで(%variable name%)、変数の置換に使用することができます。このトピックでは、ModelBuilder でのインライン モデル変数置換の使用例を紹介します。

例 1

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

インライン データ ワークスペース

例 2

イテレータの [フィーチャクラスの反復(Iterate Feature Classes)] を実行すると、フィーチャクラスのパスと名前を表す出力変数が作成されます。「名前」変数の値を使用して、「投影変換されたフィーチャクラス」のパスを作成できます。ツールを実行すると、%名前% がフィーチャクラスの名前で置換されます。

インライン変数としてのイテレータ出力

例 3

パーセル ID」は、モデル ツールの実行時に指定するモデル パラメータです。この変数は、[属性検索(Select Layer By Attribute)] ツールの [式] パラメータで、「"パーセル" = '%パーセル ID%'」として使用されます。ツールを実行すると、%パーセル ID% が指定したパーセル ID(この例では 9)で置換され、ID が 9 のパーセルだけが選択されます。

[属性検索(Select Layer By Attribute)] ツールでのインライン変数の使用
注意注意:
  • この例のパーセル ID 変数は、データ型の文字列です。式の中の文字列型のインライン変数は、引用符で囲む必要があります(「'%string variable%'」のように指定します)。インライン変数が数値(double、long)型なら、引用符は必要ありません(「%double%」のように指定すれば済みます)。
  • [検索条件設定] で SQL クエリにインライン変数置換を使用して [確認] ボタンをクリックすると、[フィーチャ レイヤの作成(Make Feature Layer)][選択(Select)]、および [属性検索(Select Layer By Attribute)] などのツールの場合、式の評価時に整合チェックによってインライン変数の値が置換されないため、SQL クエリが無効だというエラーになります。ツールを実行するときは、式内のインライン変数の値は置換され、置換された値に基づいて結果が作成されます。

例 4

このモデルでは、「住民数」と「1 人あたりの 1 年間のゴミの量」の 2 つの変数を使用します。これらの変数をパーセント記号で囲んで、[値の計算(Calculate Value)] ツールの式で使用します。[値の計算(Calculate Value)] ツールを実行すると、変数名がそれぞれ指定した値で置換され、乗算により「1 年間のゴミの総量」が計算されます。

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

例 5

マイルをメートルに換算」は、マイルからメートルへの換算係数(1,609.344)を格納するモデルの変数です。入力には、マイル値による距離フィールドが含まれます。[フィールド演算(Calculate Field)] ツールは、距離フィールドの値(マイル単位)に変換係数を乗算して、メートル単位の距離を生成します。[値の計算(Calculate Value)] ツールの式は、「マイル * %マイルをメートルに換算%」です。ツールを実行すると、%マイルをメートルに換算% が 1609.344 で置換されます。

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

例 6

次の例は、モデルにおけるインライン変数置換の誤った使い方と、問題を修正する方法を示しています。

入力」変数には、C:\ToolData\Road.shp の値が格納されています。出力名のインライン置換に「C:\Scratch\%入力%」を指定すると、ツールはエラーを生成します。このエラーは、入力変数にはデータセットのパス、名前、および拡張子が含まれており、置換後の値が C:\Scratch\C:\ToolData\Road.shp という無効なパスになるために発生します。この問題を解決するには、[パスの解析(Parse Path)] ツールを使用して絶対パスを要素に分割してから、「名前」変数に格納されたデータセット名をインライン置換で使用します。

インライン変数の誤った使用方法

関連トピック

5/10/2014