スケマティック ルールは、ダイアグラムに自動的にアイテムを追加したり、ダイアグラムから自動的にアイテムを削除したりする場合に非常に役立ちます。たとえば、ユーティリティ ネットワークには、多くの場合、ユーザーがスケマティック ダイアグラムに表示する必要がないような設備があります。そこで、ArcGIS Schematics の優先度によるノード削減ルールを使用すると、そのようなアイテムを削除することができます。この場合、それらのアイテムを接続するリンクはスーパースパンとなり、次のアイテムに接続します。もう 1 つの例として、アイテムがジオデータベース内でリレーションシップ クラスによって相互に関連付けられているソーシャル ネットワークが考えられます。ここでは、ユーザーがマップ上でアイテムを 1 つ選択すると、リレーションシップ クラス情報によって、関連するアイテムが自動的にダイアグラムに追加されるようにします。そのためには、Schematics のリレーションシップ ルールを使用します。その他にもさまざまなルールがあり、すべてが特定の用途で使用されるように作成されています。使用可能な各ルールの詳細については、ヘルプ ファイルをご参照ください。
この演習では、2 つの異なるルールを使用して、次の作業を行います。
- ダイアグラムからいくつかのアイテムを削除するノード削減ルールを構成します。
- ダイアグラムにいくつかのアイテムを追加するリレーションシップ ルールを構成します。
- ダイアグラムにコンテナーが表示されるように、リレーションシップ ルールを変更します。
ノード削減ルールを作成して構成する
まず、ダイアグラムに表示されている 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 を閉じます。