このワークフローでは、モデル内のモデル、またはネストされたモデルを作成します。 モデルは、いくつかのフィーチャクラスを反復して投影変換し、単一のフィーチャクラスを作成します。

モデルの一部が複数回実行する必要がないときは、ネストされたモデルが必要です。 反復子をモデルに追加すると、そのモデル内のすべてのツールが反復子が返すそれぞれの値について実行します。 この例では、[投影変換 (Project)] ツールを各フィーチャクラスについて反復します。ただし、[マージ (Merge)] ツールは、1 回実行するだけで投影変換されたフィーチャクラスをすべてまとめて取得し、マージされた出力が作成されるため、複数回実行しても意味がありません。 したがって、[マージ (Merge)] ツールは 1 回実行されるメイン モデルに追加して、2 回以上実行されるサブモデルを呼び出します。
前提条件
はじめて ModelBuilder を使用する場合は、次のトピックに目を通してください。
プロジェクトを開く
プロジェクトをダウンロードして、このワークフローで使用します。 このプロジェクトには、入力データ、出力ジオデータベース、および完成したモデルが含まれています。
- モデル内のモデルの操作の概要ページを開きます。
- ページの右側にある [ダウンロード] をクリックします。
- ダウンロードした ModelWithinModel.zip ファイルを右クリックして、C:\Temp などのわかりやすい場所に展開します。
- 展開したフォルダー ModelWithinModel の ArcGIS Pro プロジェクト ファイル (ModelWithinModel.aprx) をダブルクリックします。
- [カタログ] ウィンドウのデータを調査し、必要に応じて [プロジェクト] タブをクリックします。 [フォルダー] > [ModelWithinModel] の順にクリックします。
ToolData.gdb ジオデータベースには、3 つのフィーチャクラスが含まれています。これは、モデルの入力として使用されます。
モデルの出力は ScratchCommon.gdb ジオデータベースに書き込まれます。
ツールの追加
MyProjectTools ツールボックスにモデルを作成します。 ツールをモデルに追加するには、次の手順に従います。
- [カタログ] ウィンドウで、[プロジェクト] タブをクリックします。 [フォルダー] > [ModelWithinModel] > [MyProjectTools] の順にクリックします。
- [MyProjectTools] を右クリックし、[新規] > [モデル] の順にクリックして、モデルを作成して開きます。
- リボンの [ModelBuilder] タブをクリックします。 [モデル] グループで、[プロパティ]
をクリックします。 [ツール プロパティ] ダイアログ ボックスの [名前] に「ProjectMainModel」を、そして [ラベル] に「プロジェクト メインモデル」を入力します。 - リボンの [ModelBuilder] タブの [モデル] グループで、[保存] ボタン
をクリックして変更を保存します。 - 別のモデルを作成しますが、このモデルの [名前] テキストを「ProjectSubModel」とし、また [ラベル] テキストを「プロジェクト サブモデル」とします。
- [ModelBuilder] タブで、[反復] ドロップダウン メニュー
をクリックしてから、[フィーチャクラスの反復] ツールをクリックします。
[フィーチャクラスの反復 (Iterate Feature Classes)] ツールがプロジェクト サブモデル モデルに追加されます。 パラメーター値が何も指定されていないため、反復子は使用できません。
- [ModelBuilder] タブで、[ユーティリティー]
をクリックしてから、[値の収集] ツールをクリックします。
[値の収集 (Collect Values)] ツールがプロジェクト サブモデル モデルに追加されます。
- [投影変換 (Project)] ツールを追加します。
- モデル内をクリックして「投影変換」とモデルに直接入力し、[モデルにツールを追加] ダイアログ ボックスを開きます。
- [投影変換 (Project)] ツールを検索します。
- [投影変換 (Project)] ツールをダブルクリックして、モデルに追加します。

ヒント:
ツールのパラメーターを指定して、ツールを接続します。
モデルにツールを追加した後で、各ツールのパラメーターを指定する必要があります。
- [フィーチャクラスの反復 (Iterate Feature Classes)] ツールをダブルクリックして、反復子のダイアログ ボックスを開きます。
- [ワークスペース、またはフィーチャ データセット] パラメーターで、ToolData.gdb ジオデータベースを参照します。
- その他のパラメーターはデフォルト値のままで、[OK] をクリックします。

ワークスペースがモデル変数としてモデルに追加 (青の角丸四角形) されて、反復子の色が変わります。これは、必要なパラメーターが提供されて、実行可能になったことを表します。
ヒント:
- 反復子の出力を右クリックして、[名前の変更] をクリックします。 名前に「フィーチャクラス」と入力します。
- [投影変換 (Project)] ツールをダブルクリックして、ツールのダイアログ ボックスを開きます。
- [入力データセット、またはフィーチャクラス] パラメーターのドロップダウン リストから [フィーチャクラス] を選択します。
- [出力データセット、またはフィーチャクラス] パラメーターの <Your Project Location>\ScratchCommon.gdb を参照して、「%名前%_投影」と入力します。
- [出力座標系] パラメーターの [投影座標系] > [米国州平面座標系] > [NAD 1983 (Meters)] > [NAD 1983 StatePlane Oregon North FIPS 3601 (Meters)] の順に選択します。
- その他のパラメーターはデフォルト値のままで、[OK] をクリックして [投影変換 (Project)] ツールのダイアログ ボックスを閉じます。

注意:
入力フィーチャクラスに異なる座標系が含まれている場合は、地理座標系変換がすべてに適用されずに、データを不適切に投影変換する可能性があります。 入力座標系および適用する地理座標系変換方式に注意しておく必要があります。 そのような場合には、[ワイルドカード] パラメーターを使用して、選択的にフィーチャクラスを投影変換します。
- [投影変換 (Project)] ツールの出力変数 (緑の角丸四角形) にマウス ポインターを合わせます。 コネクター ラインを描画するには、そのコネクター ラインをクリックして [値の収集 (Collect Values)] ツールまでドラッグします。 マウス ボタンを放し、ポップアップ メニューの [入力値] をクリックします。
[値の収集 (Collect Values)] ツールは、各反復処理の出力値を 1 つの複数値出力に収集するために使用するモデルのユーティリティー ツールです。
- 反復子への入力変数を右クリックして [パラメーター] をオンにします。
これで、変数の横に文字 P が追加されて、これがモデル パラメーターであることを示します。
- 上記と同じ方法で、[値の収集 (Collect Values)] ツールの出力からモデル パラメーターを作成します。
- モデルのエレメントを並べ替えるには、[ModelBuilder] タブの [自動レイアウト] ボタン
をクリックして [ウィンドウに合わせる] ボタン
をクリックし、モデル ウィンドウのレイアウトのサイズを最大化します。 - [ModelBuilder] タブの [保存] ボタン
をクリックしてモデルを保存し、プロジェクト サブモデルを閉じます。 - プロジェクト メインモデル モデルで、[マージ (Merge)] ツールを検索してモデルに追加します。
- [カタログ] ウィンドウで直前に作成したプロジェクト サブモデル モデルを参照します。 プロジェクト サブモデル モデルを、プロジェクト メインモデル モデルにドラッグします。
サブモデルがメインモデルに追加されます。 サブモデルのパラメーターが変数としてメインモデルに追加されます ([ToolData.gdb] では青の角丸四角形、[Output Values] では緑の角丸四角形)。
- プロジェクト サブモデルの出力変数 [出力値] (緑の角丸四角形) にマウス ポインターを合わせます。 コネクター ラインを描画するには、そのコネクター ラインをクリックして [マージ (Merge)] ツールまでドラッグします。 マウス ボタンを放し、ポップアップ メニューの [入力データセット] をクリックします。
これは、サブモデル出力と [マージ (Merge)] ツールとの間の接続を作成します。

- [マージ (Merge)] ツールをダブルクリックして、ツールのダイアログ ボックスを開きます。 [出力データセット] パラメーターで、<Your Project Location>\ScratchCommon.gdb ジオデータベースを参照して、「ProjectedFC_Merge」と入力します。 [フィールド マップ] パラメーターはデフォルト値のままで、[OK] をクリックしてダイアログ ボックスを閉じます。

入力および出力変数の名前は、デフォルトの変数名の代わりに、より意味のある名前に変更しておくことをおすすめします。
- [マージ (Merge)] ツール出力の「マージされたフィーチャクラス」の名前を変更します。 このトピックの冒頭で示したように、その他すべてのモデル変数の名前を変更します。
モデルの実行
モデルを検証して実行します。 ScratchCommon.gdb ジオデータベース内の出力を確認し、すべてのフィーチャクラスが投影後にマージされたことを確かめます。
- [マージ (Merge)] ツールの出力を右クリックして、[マップへ追加] をクリックします。
出力がマップに追加されます。
- [ModelBuilder] タブの [保存] ボタン
をクリックして、モデルを保存します。 - [プロジェクト メインモデル] タブの [実行] ボタン
をクリックして、モデルを実行します。モデルがサブモデルを実行し、すべてのフィーチャクラスを反復して投影変換し、ScratchCommon.gdb ジオデータベース内に出力を作成します。 [値の収集 (Collect Values)] ツールがサブモデル内の出力を収集し、そのデータセットを [マージ (Merge)] ツールの [入力データセット] パラメーターに渡します。 [マージ (Merge)] ツールは、1 回実行されて、マージされた出力を作成します。

- モデルおよび ArcGIS Pro を閉じます。