ダイアグラム ルールは、ネットワーク ダイアグラムの生成および更新中に実行される特定のタスクで、特定のネットワーク エレメントの破棄、他のフィーチャまたはオブジェクトの追加、あるいはダイアグラム格納物の単純化を行います。 ダイアグラム ルールは、結果として生成されたプログラムで特定のフラグを構成する場合にも使用されます。
概要
これらのルールは、次の操作に使用できます (ルールによって異なります)。
- ダイアグラム格納物の変更。次のいずれかを実行して、グラフ自体を調整します。
- 特定のネットワーク エレメントの破棄 (フィーチャの削除ルール)
- 他のフィーチャまたはオブジェクトの追加 (接続性の関連付けの追加ルール、構造物付属物の追加ルール、トレース ルール、空間クエリ ルール、および格納器の展開ルール)
- ネットワーク エレメントの集約によるダイアグラム格納物の単純化 (ジャンクションの削減ルール、エッジの削減ルール、および格納器の単純化ルール)
- ダイアグラムに含まれているフィーチャで、ルート フラグや始点などの特定のフラグを設定します (ルート ジャンクションの設定および始点の設定ルール)。
- 他のルールの処理 (特に、該当する一連のルールの反復) (反復処理の開始および反復処理の停止ルール) を制御します。
ダイアグラム ルールは、ダイアグラムの基準になるテンプレート上に構成されている場合に、ダイアグラムの生成および更新中に実行されます。
構築プロセスでは最初に、入力に含まれるネットワーク フィーチャまたはオブジェクトに対して、生成されたダイアグラムで予想されるダイアグラム フィーチャが構築されます。構築されるダイアグラム フィーチャは、入力に含まれるネットワーク エレメントごとに 1 つです。 次に、ルールがテンプレート上に構成されている場合は、これらのルールがダイアグラム フィーチャの最初のセットに対して実行され、自動的にダイアグラム内でダイアグラム格納物 (削減ルールなど) が単純化されるか、新しいダイアグラム フィーチャ (トレース ルールなど) が作成されます。
テンプレート上に複数のルールを構成することができます。これらのルールは、一般的にエントリ順に連結されます。ルール 1 は、「基本構築フェーズ」の最後に構築されたダイアグラム フィーチャに対して実行され、ルール N はルール (N-1) の処理結果として生成されたフィーチャに対して実行されます。
注意:
これには、構造物付属物の追加ルールという例外が 1 つだけ存在します。 このルールは、ルール シーケンスで設定した位置に関係なく、体系上、最後に実行されます。
ダイアグラム グラフ変更ルール
次のセクションに記載されているルールは、すべてダイアグラム グラフの変更に使用されます。
フィーチャの削除
フィーチャの削除ルールはダイアグラムに表示されている特定のネットワーク フィーチャまたはネットワーク オブジェクトを削除するために使用されます。 このルールは、ソース クラスまたはオブジェクト テーブルに基づいてこれらのネットワーク エレメントを削除し、必要に応じて、接続性制限または属性を基準にこれらのネットワーク エレメントをフィルタリングします。
ダイアグラム構成中に設定された入力ネットワーク エレメント間に存在する可能性があるネットワーク フィーチャまたはネットワーク オブジェクトを自動で破棄するのに役立ちます。 たとえば、ネットワーク マップ内で選択されたネットワークの配電部分を表示するダイアグラムを生成するために、配電ラインを除くすべてのネットワーク フィーチャまたはネットワーク オブジェクトを入力ネットワーク エレメントから自動的に破棄するフィーチャの削除ルールを使用して構成されたダイアグラム テンプレートを使用することができます。
トレース
トレース ルールは、ダイアグラム内で現在表されているユーティリティ ネットワークまたはトレース ネットワーク エレメントからのトレースの実行に使用されます。
トレースを実行する始点は、トレース タイプによって異なります。
- 接続、サブネットワーク、上流、下流のトレース タイプの場合、トレース ルールを開始する際にダイアグラムに表示されているすべてのユーティリティ ネットワークまたはトレース ネットワーク エレメントは、ダイアグラム テンプレートで [始点の設定ルール] が構成されていて特定の始点が明確に特定されていない限り、トレースの始点に考慮されます。
- 最短パスのトレース タイプの場合、ダイアグラム テンプレートで [始点の設定ルール] を構成して、ダイアグラムに現在表示されているすべてのトレース ネットワーク エレメント間で、最短パスを検索する 2 つの始点を識別することができます。
一般的に、トレース ルールは、ダイアグラム構成中に最初に設定されたルールに混ざって実行されるようにダイアグラム テンプレートで構成されます。 一般的なワークフローとしては、あらかじめ始点の設定ルールを使用して、可能性のあるすべての入力ユーティリティ ネットワークまたはトレース ネットワーク エレメントの中で始点を事前に設定し、トレースがこれらの始点のみから機能するようにします。
トレース ルールに基づいてテンプレートを構成した場合、ダイアグラムが更新されるたびに、ユーティリティ ネットワークまたはトレース ネットワーク上で体系的にトレースが再実行されます。 つまり、更新時に、必ず最新のネットワーク トレース結果が、そのテンプレートに基づくすべてのダイアグラムに反映されます。
格納器の展開
格納器の展開ルールは、次に従う格納物フィーチャまたはオブジェクトを追加することによってダイアグラムを展開するために使用されます。
- ダイアグラム入力の格納器に含まれる。
- ダイアグラム入力の格納物として同じ格納器を共有する。
格納器の展開ルールは、ソース クラスまたはオブジェクト テーブルごとに格納器を展開し、必要に応じて、属性に基づいて格納器をフィルタリングします。
接続性の関連付けの追加
接続性の関連付けルールを追加は、ダイアグラムに現在示されている起点ジャンクションと終点ジャンクション両方の接続性の関連付けを表す明示的なエッジをダイアグラムに追加するために使用されます。
デフォルトでは、接続性の関連付けはネットワーク マップ内に描画されません。 接続性の関連付けルールを追加を使用すると、ルールの実行時に関連する起点ジャンクションと終点ジャンクションがダイアグラムに存在するたびに、接続性の関連付けが体系的に描かれるダイアグラムを生成できます。 接続する起点ジャンクションと終点ジャンクションの間の直線のダイアグラム エッジとして表示されます。
構造物付属物の追加
構造物付属物ルールの追加は、ダイアグラムに現在表示されている付属物ネットワーク エレメントおよび構造物エレメントの両方に関して、構造物付属物の関連付けを表す明示的なエッジをダイアグラムに追加するために使用されます。
デフォルトでは、構造物付属物の関連付けはネットワーク マップ内に描画されません。 構造物付属物ルールの追加を使用すると、ルールの実行時に付属されたネットワーク エレメントと構造物エレメントがダイアグラムに存在するたびに、構造物付属物の関連付けが体系的に描かれるダイアグラムを生成できます。 関連する付属物フィーチャと構造物ダイアグラム フィーチャの間の直線のダイアグラム エッジとして表示されます。
空間検索
空間検索ルールは、ダイアグラムに現在存在しているネットワーク フィーチャを基準にした位置に基づいて新しいネットワーク フィーチャを検出し、新たに検出されたフィーチャをネットワーク ダイアグラムに追加するために使用されます。
空間検索ルールでは、別のネットワーク クラスに属するネットワーク フィーチャを基準にした位置に基づいて、ネットワーク クラスに属するフィーチャを追加します。 必要に応じて、既存のフィーチャおよび追加されるフィーチャを SQL 式に基づいてフィルタリングできます。
格納器の単純化
格納器の単純化ルールは、ダイアグラム内に存在する格納器に関連するすべての格納物を単純化することによって、ダイアグラムを簡略化するために使用されます。
格納器の折りたたみルールは、ソース クラスまたはオブジェクト テーブルごとに格納器を折りたたみ、必要に応じて、属性に基づいて格納器をフィルタリングします。
ジャンクションの削減
ジャンクションの削減ルールは、トポロジを維持しながらダイアグラム グラフを単純化するために使用されます。
ジャンクションの削減ルールは、接続されているジャンクションの数に基づいて、ネットワーク ジャンクション クラスまたはオブジェクト テーブルに属するジャンクションを削減します。 必要に応じて、削減する前に、隣接エッジの特定の属性値または属性に基づいてジャンクションをフィルタリングできます。
エッジの削減
エッジの削減ルールは、予想される各ネットワーク ライン フィーチャまたはエッジ オブジェクトとそのすべての接続ポイントをスケマティック ダイアグラム ジャンクションにマージすることにより、トポロジを維持しながらダイアグラム グラフを単純化するために使用されます。 このタイプのジャンクションは削減ジャンクションと呼ばれます。
結果のダイアグラム内の削減ジャンクションは 1 つのネットワーク ライン フィーチャまたはエッジ オブジェクトとそのすべての接続ポイントを集約します。つまり、削減ジャンクションは、複数のネットワーク ライン フィーチャまたは複数のエッジ オブジェクトを集約できません。
ダイアグラム フィーチャ ルールへのフラグ、機能、または始点の設定
次のセクションに記載されているルールを使用して、後で他のダイアグラム ルールやレイアウトで考慮されるよう、いくつかのダイアグラム フィーチャを設定します。
ルート ジャンクションの設定
ルート ジャンクションの設定ルールは、ジャンクションの属性が存在する場合、それらの属性に基づいてジャンクションをフィルタリングすることによって、ネットワーク ジャンクション クラスまたはオブジェクト テーブルに基づいてジャンクションをダイアグラム ルート ジャンクションとして指定するために使用されます。
ルート ジャンクションは、ツリー レイアウトがネットワーク ダイアグラム上で実行されるときの動作の始点となる特定のジャンクションであるため、通常、このルールは、ダイアグラムの生成時にツリー レイアウトを自動的に実行するように設定されたテンプレートで構成されます。
始点の設定
始点の設定ルールは、ダイアグラムに表示されているネットワーク エレメントを始点として事前設定するために使用されます。
始点の設定ルールがトレース ルールの前に事前設定されている場合、トレースでは、実行時にダイアグラムに表示されているすべてのネットワーク エレメントが実行されるのではなく、指定した始点のみを始点として識別します。
ダイアグラム フィーチャ機能の追加
ダイアグラム フィーチャ機能を追加ルールは、特定の機能を、実行するときに、現在表示されている一部のダイアグラム フィーチャに割り当てるために使用されます。
この機能は、ルール シーケンスにおいて後で動作を開始するように構成されている他のルールによって考慮されることがあります。
ルールの順序付け
ダイアグラム ルールは、ダイアグラム テンプレート上に構成され、そのテンプレートに基づくダイアグラムが生成または更新されるごとに実行されます。
ダイアグラム テンプレート上にルール シーケンスを構成する際に考慮する必要のあるプロパティと原則を次に示します。
- 各ルール プロセスは反復処理です。
- ルール シーケンスの結果は、そのシーケンス内の各ルールの位置に応じて異なります。
- デフォルトで、ルール シーケンスは反復処理ではありません。
各ルール プロセスが反復処理である場合
各ルールは、反復メモリ内プロセスとして個別に実行されます。
たとえば、1 つのジャンクションが接続されているネットワーク ジャンクションを削減するようにジャンクションの削減ルールを構成すると、ジャンクションの削減ルールが 1 回実行され、ダイアグラム グラフで予想されるジャンクションがすべて削減されます。 次に、ルールの最初の反復処理の後などで 1 つのジャンクションに接続された新しいジャンクションを削減する処理が実行され、これらのジャンクションがダイアグラム グラフに存在しなくなるまで反復実行されます。
同様に、格納器の役割を果たすネットワーク ジャンクションを体系的に拡張するように格納器の展開ルールを構成すると、格納器の展開ルールが 1 回実行され、ダイアグラムで予想されるジャンクションがすべて展開されます。 次に、ルールの最初の反復処理の後などでダイアグラムに追加された新しい格納器を展開する処理が実行され、これらの格納器がダイアグラム グラフに存在しなくなるまで反復実行されます。
ルール シーケンスの結果はシーケンス内の各ルールの位置に応じて実行
ルール シーケンスの処理は、可換的演算ではありません。 つまり、連結するルールのエントリ順によって、ダイアグラムの最終的な格納物が決定されます。ルール #1 は、入力値として使用された一連のネットワーク エレメントから最初に構築されたダイアグラム フィーチャに対して実行され、ルール #N はルール #(N-1) の実行結果として生成されたダイアグラム フィーチャに対して実行されます。
- このことは、ダイアグラム構築のルール フェーズ中に連結するルールの種類が異なる場合 (つまり、ルール フェーズ中にジャンクションの削減ルール、フィーチャの削除ルール、格納器の展開ルール、格納器の単純化ルール、接続性の関連付けの追加ルール、トレース ルールを連結する場合) にも当てはまります。
たとえば、ジャンクションの削減ルールを実行した後に格納器の展開ルールを実行した場合は (ルール構成 1)、格納器の展開ルールを実行した後にジャンクションの削減ルールを実行した場合 (ルール構成 2) と同じ結果になりません。
- これは、ダイアグラム構築のルール フェーズ中に同じルール タイプの複数のルールを連結する場合にも当てはまります。
たとえば、1 つのジャンクションに接続されている青色のジャンクションを削減するジャンクションの削減ルールを実行した後に、1 つのジャンクションに接続されている緑色のジャンクションを削減するジャンクションの削減ルールを実行した場合は (ルール構成 #3)、緑色のジャンクションを削減した後に青色のジャンクションを削減した場合 (ルール構成 4) と同じ結果になりません。
デフォルトでルール シーケンスが反復処理でない場合
デフォルトで、ルール シーケンスは反復処理ではありません。 ルール プロセスはいずれも反復処理ですが、デフォルトでは、一連のルールが反復されません。
たとえば、上記の図 B1 と図 B2 は、構成 3 と構成 4 のルール シーケンスが一度実行された後のサンプル ダイアグラムを示しています。 これらのサンプルの場合、各ルール シーケンスを 2 回実行すると、同じ結果が生成されます。つまり、2 つのダイアグラムで 1 つのジャンクションに接続されている緑色のジャンクションと青色のジャンクションがすべて削減されます。
ジャンクションが相互に接続されているジャンクションの削減ルールを複数構成し、実行中に残りのターゲット ジャンクションが接続されるジャンクションの数を変更する場合にルール シーケンスを反復処理にするには、反復処理の開始および反復処理の停止という 2 つのルールが必要となります。
- 反復処理の開始ルールを使用すると、ルール シーケンスの開始が通知され、ダイアグラム ビルダー プロセスが反復処理またはループ処理になります。
- 反復処理の停止ルールを使用すると、ルール シーケンスの停止が通知され、ダイアグラム ビルダー プロセスを反復処理またはループ処理にする必要があります。
これら 2 つのルールは、ジャンクションの削減ルールを複数連結するルール シーケンスを構成する場合に特に有効です。 「ジャンクションが相互に接続されているジャンクションの削減ルールでは、残りのジャンクションの接続の数が変更される」ため、残りのジャンクションが以前に実行された削減ルールの新たな候補になる可能性があります。 開始ルールと停止ルールにより、削減するジャンクションがなくなるまで、該当するシーケンスで構築プロセスが反復されます。
反復処理の開始ルールと反復処理の停止ルールをテンプレートに追加するには、[反復処理の開始ルールの追加 (Add Start Iteration Rule)] ツールと [反復処理の停止ルールの追加 (Add Stop Iteration Rule)] ツールを使用します。
注意:
他の 3 つ以上のジャンクションが接続されているジャンクションの削減は、多大な時間がかかるため、他のすべてのジャンクションの削減ルールが完了した後で実行する必要があります。 ダイアグラムの生成と更新のパフォーマンスを最適化するには、他のジャンクションが最大で 2 つ接続されているジャンクションを処理するジャンクション削減ルールと、3 つ以上の他のジャンクションを接続するジャンクションを処理するジャンクション削減ルールを、同じ反復シーケンス内に混在させないようにします。 推奨するワークフローは次のとおりです。
- 削減ルールの最初の反復シーケンスを、他のジャンクションが最大 2 つ接続されているジャンクションを処理するように構成します。
- 削減ルールの 2 番目の反復シーケンスを、3 つ以上の他のジャンクションを接続するジャンクションを処理するように構成します。
ルールの処理に関する推奨事項および警告
ダイアグラム ルールを構成する際には、次の点に留意してください。
- フィーチャの削除ルール (「フィーチャの削除ルールを追加」または [属性によるフィーチャの削除ルールを追加 (Add Remove Feature By Attribute Rule)] ツールを使用して構成) をルール シーケンスの最初の位置で実行することで、ダイアグラム グラフを調整する前に、特定のネットワーク フィーチャまたはネットワーク オブジェクトをダイアグラムから体系的に破棄できます。
たとえば、[ソース クラスを除外] ルール プロセスで [フィーチャの削除ルールを追加 (Add Remove Feature Rule)] ツールを適用して、一部の特殊なネットワーク ソース クラスまたはオブジェクト テーブルを除くすべてのネットワーク ソース クラスおよびオブジェクト テーブルに関連するネットワーク フィーチャまたはネットワーク オブジェクトを破棄します。 また、「グラフの完全性がネットワーク ダイアグラムで常に維持されている」ため、Source Type = EDGES の実行中に特定のライン クラス (送電線など) を除外すると、この例の送電網のように、ネットワークの一部で構築されたダイアグラムを確保できる場合があります。
- 空間検索ルール ([空間検索ルールの追加 (Add Spatial Query Rule)] ツールを使用して追加) は、ルール シーケンスに任意のタイミングで設定できますが、ルール シーケンスの最初にすべての対象フィーチャを取得する場合に便利です。
- トレース ルール (「トレース ルールの追加」ツールを使用して追加) は、一般的には、トレースからダイアグラムを生成するようにテンプレートを構成する場合に、ルール シーケンスの最初に設定するルールの 1 つです。 この場合、テンプレートに始点の設定ルールを構成し、特定のフィーチャまたはジャンクション ターミナルを処理対象のトレース ルールの始点として設定することもできます。 始点の設定ルールは、[属性による始点の設定ルールを追加 (Add Set Starting Point By Attribute Rule)] ツールを使用して、ダイアグラム テンプレートのルール シーケンスでトレース ルールの前に設定する必要があります。
- 格納器の展開ルール ([格納器の展開ルールを追加 (Add Expand Container Rule)] または [属性による格納器の展開ルールを追加 (Add Expand Container By Attribute Rule)] ツールを使用して構成) により、ダイアグラム内で「格納器を展開」できます。 これらは一般的に、ダイアグラム グラフを簡略化するルールより前に設定します。
- 接続性の関連付けの追加ルール ([接続性の関連付けルールを追加 (Add Connectivity Associations Rule)] ツールを使用して構成) を設定することで、ダイアグラムに表される接続性の関連付けを取得し、フィーチャを単純化するか縮小する前にグラフの完全性を担保することができます。
注意:
このルールの構成には時間がかかるため、必要のない場合には構成しないでください。 たとえば、体系上、すでに接続性の関連付けはトレースから返されているため、接続性の関連付けの追加ルールは、トレース ルールを実行するように構成されたテンプレートに関係していません。
- ダイアグラム フィーチャ機能ルールの追加 ([属性によるダイアグラム フィーチャ機能ルールの追加 (Add Diagram Feature Capability By Attribute Rule)] ツールを使用して追加) は、格納器の単純化やジャンクションの削減を正確に管理するために設定できます。 このルールを使用すると、ダイアグラム構築の全体または一部で特定の格納器が単純化されたり、特定のジャンクションが削減されたりするのを防止することができます。
- 格納器の単純化ルール ([格納器の単純化ルールを追加 (Add Collapse Container Rule)] または [属性による格納器の単純化ルールを追加 (Add Collapse Container By Attribute Rule)] ツールの実行時に設定) は、ダイアグラム内で格納器を単純化するために実行されます。 単純化された格納器に関連するすべての格納物の記録を保持する場合、これらのルールは格納器の展開ルールの後に実行する必要があります。
- 反復処理の開始ルール ([反復処理の開始ルールを追加 (Add Start Iteration Rule)] ツールを使用して構成) は、ジャンクションの削減ルールの反復シーケンスの最初に配置する必要があります。 これにより、そのシーケンスのいずれかのルールによって削減されるジャンクションがダイアグラム内に出現するまで、ダイアグラムの構築プロセスがジャンクションの削減ルール シーケンス上で強制的にループします。
- ジャンクションの削減ルール ([ジャンクションの削減ルールを追加 (Add Reduce Junction Rule)] および [属性によるジャンクションの削減ルールを追加 (Add Reduce Junction By Attribute Rule)] ツールの実行時に追加) を使用して、ダイアグラム グラフを簡素化します。
注意:
構成時には、最大 2 つの他のジャンクションを接続するジャンクションを処理するジャンクションの削減ルールと、3 つ以上の他のジャンクションを処理するジャンクションの削減ルールを、同じ削減ルールの反復シーケンス内で使用しないでください。 これらを一緒に使用すると、ダイアグラム生成時のパフォーマンスが低下します。 3 つ以上の他のジャンクションを接続するジャンクションを削減するには、2 つの反復シーケンスを設定します。1 つ目は最大 2 つの他のジャンクションを接続するジャンクションの削減を処理するもので、2 つ目は 3 つ以上の他のジャンクションを接続するジャンクションを削減するためのものです。
ヒント:
格納物ジャンクションは非格納物エレメントを集約せず、非格納物ジャンクションは格納物エレメントを集約しないため、ジャンクションを削減する前にフィーチャの削除ルールを構成することで、ダイアグラム内のすべてのポリゴン格納器および格納物-格納器の関係を削除し、削減を強制することができます。
- 反復処理の停止ルール ([反復処理の停止ルールを追加 (Add Stop Iteration Rule)] ツールを使用して構成) は、ジャンクションの削減ルールの反復シーケンスの最後 (つまり、構築プロセスを反復処理するシーケンス内で最後のジャンクションの削減ルールの後) に配置する必要があります。
- エッジの削減ルール ([属性によるエッジの削減ルールを追加 (Add Reduce Edge By Attribute Rule)] ツールを使用して設定) は、エッジを削減します。
- 構造物付属物ルール ([構造物付属物ルールの追加 (Add Structural Attachments Rule)] ツールを使用して構成) は、ルール シーケンス内で設定する場合はいつでも、最後に体系的に実行されます。
注意:
このルールの構成には時間がかかるため、必要のない場合には構成しないでください。 たとえば、構造物付属物の追加は、以下を実行するために構成されたテンプレートとは関係ありません。
- 構造物を含まないトレース ルール
- 付属物をサポートする構造物ジャンクションを処理するために設定されたフィーチャの削除ルール
注意:
次の特定の状況で、フィーチャの削除ルールを設定することもできます。
- トレース ルールの後、または格納器の展開ルールの後に、ダイアグラム グラフ内の格納器の関係性を削除する場合。 これはダイアグラム グラフを簡素化します。
- ダイアグラム グラフを消去したりダイアグラムを簡素化したりするためのルール シーケンスの最後で、たとえば、線形格納器エッジを体系的に削除する場合。ネットワーク線形格納器とそれに関連する格納物の両方をダイアグラム内に表示すると、紛らわしかったり不適切だったりする場合があるからです。
次の図は、上記の推奨事項に基づくルール シーケンス内のルールごとの推奨位置を示します。
注意:
各ルールはオプションであり、ダイアグラム テンプレート上に構成されている通常のルール シーケンスの多くは上記のシーケンスのさまざまな部分に適合します。