演習 2: スケマティック ルールを構成する
スケマティック ルールは、ダイアグラムに自動的にアイテムを追加したり、ダイアグラムから自動的にアイテムを削除したりする場合に非常に役立ちます。たとえば、ユーティリティ ネットワークには、多くの場合、ユーザがスケマティック ダイアグラムに表示する必要がないような設備があります。そこで、ArcGIS Schematics の優先度によるノード削減ルールを使用すると、そのようなアイテムを削除することができます。この場合、それらのアイテムを接続するリンクはスーパースパンとなり、次のアイテムに接続します。もう 1 つの例として、アイテムがジオデータベース内でリレーションシップ クラスによって相互に関連付けられているソーシャル ネットワークが考えられます。ここでは、ユーザがマップ上でアイテムを 1 つ選択すると、リレーションシップ クラス情報によって、関連するアイテムが自動的にダイアグラムに追加されるようにします。そのためには、Schematics のリレーションシップ ルールを使用します。その他にもさまざまなルールがあり、すべてが特定の用途で使用されるように作成されています。使用可能な各ルールの詳細については、ヘルプ ファイルをご参照ください。
この演習では、2 つの異なるルールを使用して、次の作業を行います。
- ダイアグラムからいくつかのアイテムを削除するノード削減ルールを構成します。
- ダイアグラムにいくつかのアイテムを追加するリレーションシップ ルールを構成します。
- ダイアグラムにコンテナが表示されるように、リレーションシップ ルールを変更します。
この演習を行うには、Schematics の詳細構成チュートリアルの演習 1 を完了している必要があります。ここでは、演習 1 ですでに行った構成に基づいて作業します。
ノード削減ルールを作成して構成する
まず、ダイアグラムに表示されている pipelines_Net_Junctions ノードを削除するノード削減ルールを作成し、構成します。ネット ジャンクションはジオメトリック ネットワークの一部で、実際の設備の一部ではありません。そのため、削除しても問題ない場合は、ジャンクションを削除します。
- ArcCatalogを起動します。
- C:\ArcGIS\ArcTutor\Schematics にある AdvancedSchematicDB ルート ジオデータベースを参照し、選択します。
-
このジオデータベース内にある [AdvancedSchematic] スケマティック データセットを右クリックし、ショートカット メニューから [編集] を選択します。
[スケマティック データセット エディタ] ダイアログ ボックスが表示されます。
- [スケマティック データセット エディタ] のツリーで [BrazilTemplate] エントリが選択されていない場合は、そのエントリをクリックします。
- エディタ ウィンドウの右側にある [ルール] タブをクリックします。
-
[ルールの追加] ボタン をクリックします。
[タイプ] ドロップダウン リストに、[優先度によるノード削減] がデフォルト ルールとして表示されます。ここでは、このルールを使用します。ドロップダウン リストを使用すると、使用可能な他のルールを表示することができます。
- [ルール プロパティ] ボタン をクリックして [優先度によるノード削減ルール属性] タブを開き、ルールを構成します。
- [説明] テキスト ボックスに「Remove Junctions」と入力します。
- [削減するスケマティック クラスを選択] ドロップダウン リストで [pipelines_Net_Junctions] を選択します。
-
[接続制限] オプションを選択します。
[接続数 0 のノードを削減] と [接続数 2 のノードを削減] はデフォルトでオンになっています。
- [OK] をクリックします。
- [スケマティック データセット エディタ] ツールバーの [保存] ボタン をクリックします。
優先度によるノード削減ルールをテストする
-
ArcMap を使用して Brazil.mxd ファイルを開きます。
このファイルは C:\ArcGIS\ArcTutor\Schematics\Schematics_Configuration\Mixed_Data にあります。
- [スケマティック] ツールバーの [スケマティック ダイアグラムを開く] ボタン をクリックして、[スケマティック ダイアグラムを選択して開く] ダイアログ ボックスを開きます。
-
C:\ArcGIS\ArcTutor\Schematics の AdvancedSchematicDB ジオデータベース内にある、AdvancedSchematic スケマティック データセットの [TestDiagram] というダイアグラムを参照し、選択します。
-
[追加] ボタンをクリックして、マップ内でこのダイアグラムを開きます。
この時点では、何も変更されていません。ルールは、ダイアグラムの生成時または更新時にのみ適用されます。
- TestDiagram スケマティック レイヤに属する [pipelines_Net_Junctions] レイヤを右クリックし、[選択] → [すべて選択] を選択します。
-
コンテンツ ウィンドウのツールバーの [選択状態別にリスト] ボタン をクリックします。
ダイアグラムに現在表示されている pipelines_Net_Junctions フィーチャの数に注目してください。
- [ツール] ツールバーの [選択解除] ボタン をクリックします。
- コンテンツ ウィンドウのツールバーの [描画順にリスト] ボタン をクリックします。
-
[スケマティック] ツールバーの [スケマティック] の矢印をクリックし、[ダイアグラムの更新] を選択して、[ダイアグラムの更新] ダイアログ ボックスを開きます。
- [OK] をクリックします。
- TestDiagram スケマティック レイヤに属する [pipelines_Net_Junctions] レイヤを右クリックし、[選択] → [すべて選択] を選択します。
-
コンテンツ ウィンドウのツールバーの [選択状態別にリスト] ボタン をクリックします。
ダイアグラムに現在表示されている pipelines_Net_Junctions フィーチャの数に注目してください。数が大幅に減っています。TestDiagram スケマティック ダイアグラムを生成したときの最初の選択内容によっては、画像がこれと若干異なる場合があります。
- ArcMap を閉じ、保存を確認するメッセージが表示されたら、[いいえ] を選択します。
リレーションシップ ルールを作成して構成する
これまで使用してきた Brazil データには、すでにリレーションシップ クラスがあります。このクラスは、pug_PUG_gas_plants フィーチャクラスと pug_PUG_electric フィーチャクラスとの間に存在します。pug_PUG_electric はジオメトリック ネットワークの一部ではないので、前にフィーチャ レイヤからのインポートを実行したときにはインポートされていません。まず、このレイヤをインポートします。
- スケマティック データセット エディタ アプリケーションに切り替えます。
-
[スケマティック データセット エディタ] のツリーで [BrazilTemplate] エントリを右クリックし、ショートカット メニューから [フィーチャ レイヤからインポート] を選択します。
[フィーチャ レイヤからインポート] ダイアログ ボックスが開きます。
-
[マップまたはレイヤ ファイル] 入力領域の端にある省略記号(...)ボタンをクリックします。
[インポートするマップまたはレイヤ ファイルを選択] ダイアログ ボックスが開きます。
- このダイアログ ボックスを使用して、C:\ArcGIS\ArcTutor\Schematics\Schematics_Configuration\Mixed_Data にある Brazil.mxd ファイルに移動し、選択します。
- [追加] ボタンをクリックしてダイアログ ボックスを閉じ、[フィーチャ レイヤからインポート] ダイアログ ボックスの内容を更新します。
- [選択解除] ボタンをクリックして、選択されているすべてのアイテムを削除します。これらのアイテムは、演習 1 ですでにインポートしているためです。
-
[electric] の横にあるチェックボックスをオンにします。
-
[OK] をクリックして、ダイアログ ボックスを閉じます。
[スケマティック データセット エディタ] のツリーに、新しい pug_PUG_electric スケマティック フィーチャクラスが表示されます。
- [スケマティック データセット エディタ] ツールバーの [保存] をクリックします。
- [スケマティック データセット エディタ] のツリーで [BrazilTemplate] エントリをクリックし、[ルール] タブをクリックします。
- [ルールの追加] ボタン をクリックします。
-
[タイプ] ドロップダウン リストで [リレーションシップ] を選択します。
- [ルール プロパティ] ボタン をクリックして [リレーションシップ ルール属性] タブを開き、ルールを構成します。
- [説明] テキスト ボックスに「Gas to Electric」と入力します。
-
[ソースを選択] ドロップダウン リストで [pug_PUG_gas_plants] を選択します。
これらのオプションを設定する際には、マップ ユーザが行う操作に関して検討する必要があります。この場合は、マップ ユーザがガス プラントを選択し、これに関連付けられている電気プラントが自動的にルールに追加されます。そのため、ここでは pug_PUG_gas_plants がソースとなります。ジオデータベース内で pug_PUG_gas_plants と pug_PUG_electric との間にリレーションシップ クラスがあることがシステムで認識されるので、自動的に情報が入力されます。
-
[リレーション] セクションで、[リンク線の作成] チェックボックスをオンにします。
これによって、electric フィーチャが追加され、ガス プラントから電気プラントへのリンク線が描画されるので、これらのプラントがジオメトリック ネットワークによって物理的に接続されていなくても、論理的に接続されます。
- [OK] をクリックします。
- [スケマティック データセット エディタ] ツールバーの [保存] をクリックします。
リレーションシップ ルールをテストする
-
ArcMap を起動し、Brazil.mxd ファイルを読み込みます。
このファイルは C:\ArcGIS\ArcTutor\Schematics\Schematics_Configuration\Mixed_Data にあります。
- [スケマティック] ツールバーの [スケマティック ダイアグラムを開く] ボタン をクリックして、[スケマティック ダイアグラムを選択して開く] ダイアログ ボックスを開きます。
- C:\ArcGIS\ArcTutor\Schematics の AdvancedSchematicDB ジオデータベース内にある、AdvancedSchematic スケマティック データセットの [TestDiagram] というダイアグラムを参照し、選択します。
-
[追加] ボタンをクリックして、マップ内でこのダイアグラムを開きます。
この時点では、何も変更されていません。ルールは、ダイアグラムの生成時または更新時にのみ適用されます。また、このダイアグラムには現在、電気プラントはありません。
- [スケマティック] ツールバーの [スケマティック] の矢印をクリックし、[ダイアグラムの更新] をクリックします。
-
[ダイアグラムの更新] ダイアログ ボックスで [OK] をクリックします。
ダイアグラム上にすでに表示されていたガス プラントから、リレーションシップ ルールによって新しく追加された電気プラントに接続する直線が新たに 2 本描画されます。
- ArcMap を閉じ、保存するかどうかたずねるすべてのダイアログ ボックスで [いいえ] を選択します。
データセットとリレーションシップ ルールを変更して、直線の代わりにコンテナを表示する
コンテナを使用してリレーションシップを確認できるように、小さい変更をいくつか加えます。電気プラントは両方のガス プラントに電力を供給するので、関連する両方のガス プラントを含むコンテナとして電気プラントを描画します。pug_PUG_electric フィーチャ レイヤは、ポイント ジオメトリのノードとしてインポートされています。ポイント ジオメトリをコンテナに使用することはできません。コンテナは、ポリゴンまたはポリラインでなければなりません。そのため、これも修正する必要があります。
- スケマティック データセット エディタ アプリケーションに切り替えます。
- [スケマティック データセット エディタ] のツリーで [BrazilTemplate] エントリを展開して、このダイアグラム テンプレートと関連付けられているすべてのスケマティック フィーチャクラスを表示します。
-
[pug_PUG_electric] を右クリックし、メニューから [削除] を選択します。
- 削除を確認するメッセージで [はい] をクリックします。
-
[スケマティック データセット エディタ] ツールバーの [保存] をクリックします。
ここで、レイヤをもう一度インポートする必要があります。
-
[スケマティック データセット エディタ] のツリーで [BrazilTemplate] エントリを右クリックし、ショートカット メニューから [フィーチャ レイヤからインポート] を選択します。
[フィーチャ レイヤからインポート] ダイアログ ボックスが開きます。
-
[マップまたはレイヤ ファイル] 入力領域の端にある省略記号(...)ボタンをクリックします。
[インポートするマップまたはレイヤ ファイルを選択] ダイアログ ボックスが開きます。
- このダイアログ ボックスを使用して、C:\ArcGIS\ArcTutor\Schematics\Schematics_Configuration\Mixed_Data にある Brazil.mxd ファイルに移動し、選択します。
- [追加] ボタンをクリックします。ダイアログ ボックスが閉じ、[フィーチャ レイヤからインポート] ダイアログ ボックスの内容が更新されます。
- [選択解除] ボタンをクリックして、選択されているすべてのアイテムを削除します。これらのアイテムは、演習 1 ですでにインポートしているためです。
-
[electric] の横にあるチェックボックスをオンにします。
-
[OK] をクリックして、ダイアログ ボックスを閉じます。
ポイントではなくポリゴンのジオメトリを使用するようにスケマティック フィーチャクラスを変更しなければならないので、ここでは保存しないように注意してください。
- [スケマティック データセット エディタ] のツリーで [pug_PUG_electric] エントリを選択します。
-
エディタ ウィンドウの右側にある [プロパティ] タブで、[ジオメトリ] を [ポリゴン] に変更します。
- [スケマティック データセット エディタ] ツールバーの [保存] をクリックします。
- [スケマティック データセット エディタ] のツリーで [BrazilTemplate] エントリを選択します。
- [ルール] タブをクリックします。
- 2 行目のリレーションシップ ルールを選択して、アクティブにします。
- [ルール] タブの [ルール プロパティ] ボタン をクリックします。
- [ソースとターゲットのスケマティック フィーチャをリレート] チェックボックスをオンにします。
-
[リレーションの反転] チェックボックスをオンにします。
ここでは電気プラントを親、つまりコンテナにしますが、ルールでは電気プラントがターゲットになっています。そのため、リレーションを反転する必要があります。繰り返しになりますが、ユーザが考えるのは電気プラントを選択することではなく、ガス プラントを選択することです。ただし、これを逆にすることもできます。
-
[リンク線の作成] チェックボックスをオフにします。
- [OK] をクリックします。
- [スケマティック データセット エディタ] ツールバーの [保存] をクリックします。
- [スケマティック データセット エディタ] ダイアログ ボックスを閉じます。
変更したリレーションシップ ルールをテストする
-
ArcMap を起動し、Brazil.mxd ファイルを読み込みます。
このファイルは C:\ArcGIS\ArcTutor\Schematics\Schematics_Configuration\Mixed_Data にあります。
- [スケマティック] ツールバーの [スケマティック ダイアグラムを開く] ボタン をクリックして、[スケマティック ダイアグラムを選択して開く] ダイアログ ボックスを開きます。
- C:\ArcGIS\ArcTutor\Schematics の AdvancedSchematicDB ジオデータベース内にある、AdvancedSchematic スケマティック データセットの [TestDiagram] というダイアグラムを参照し、選択します。
-
[追加] ボタンをクリックして、マップ内でこのダイアグラムを開きます。
この時点では、何も変更されていません。ルールは、ダイアグラムの生成時または更新時にのみ適用されます。電気プラントは引き続き、直線でガス プラントに接続されています。
- [スケマティック] ツールバーの [スケマティック] ドロップダウン リストをクリックし、[ダイアグラムの更新] コマンドを選択します。
-
[ダイアグラムの更新] ダイアログ ボックスで [OK] をクリックします。
これで、電気プラントを表すコンテナが両方のガス プラントを囲むように描画されます。
コンテナに関して興味深いのは、編集時に、コンテナによっていくつかの機能が追加される点です。コンテナを移動すると、コンテナ内のアイテムがコンテナと共に自動的に移動します。コンテナ内のアイテムを移動すると、そのアイテムに合わせてコンテナのサイズが自動的に調整されます。 - ArcMap を閉じ、保存するかどうかたずねるすべてのダイアログ ボックスで [いいえ] を選択します。
- ArcCatalog を閉じます。