ルート ジャンクションの設定ルールは、ジャンクションの属性が存在する場合、それらの属性に基づいてジャンクションをフィルターすることによって、ネットワーク ジャンクション クラスまたはオブジェクト テーブルに基づいて、ジャンクションをダイアグラム ルート ジャンクションとして指定するために使用されます。
ルート ジャンクションは、ツリー レイアウトがネットワーク ダイアグラム上で実行されるときの動作の始点となる特定のジャンクションであるため、通常、このルールは、ダイアグラムの生成時に、ツリー レイアウトを自動的に実行するように設定されたテンプレートで構成されます。
ルート ジャンクションの設定ルールの処理
ルート ジャンクションの設定ルールは、ツリー レイアウト (スマート ツリー、主軸ツリー、または放射状ツリー) を構成する前に、テンプレート上で設定する必要があります。それによって、期待されるルートが最初にルールによって配置され、自動ツリー レイアウトがそれらのルート ジャンクションから動作します。
ほとんどの場合、このルールは、テンプレート ルール シーケンスで構成される最後のルールであるため、ダイアグラム グラフを変更するすべてのルールの後に実行されます。 これによって、ルート ジャンクションの設定ルールがダイアグラム内に存在するすべてのジャンクションを処理することを保証します。
ルート ジャンクションの設定ルールの構成
[属性によるルート ジャンクションの設定ルールを追加 (Add Set Root Junction By Attribute Rule)] ツールを使用して、テンプレート上でルート ジャンクションの設定ルールを追加することができます。
ヒント:
属性によるダイアグラム ルールを構成する場合、SQL ステートメント WHERE 'OBJECT' = 'IN_DIAGRAM' を使うことで、他のダイアグラム フィーチャ属性値に関するネットワーク ソース属性値のダイアグラム フィーチャを除外できます。 たとえば、生成されたダイアグラムで最小の属性値を持つダイアグラム フィーチャをクエリするには、<attributeName> = (SELECT MIN(<attributeName>) FROM <networkClassName>) WHERE 'OBJECT' = 'IN_DIAGRAM' という構文に基づく SQL 式で、属性ルールによる <XXX> の追加ツールを設定します。
ダイアグラム内の最下位にあるサブネットワーク コントローラーをツリー レイアウトのルートジャンクションとして、スマート ツリー レイアウトを使用して自動的にレイアウトされるダイアグラムを作成するとします。 この場合、ダイアグラム テンプレート ジオプロセシング ビルダー モデルで [スマート ツリー レイアウトの追加 (Add Smart Tree Layout)] ツールの前に、SQL 式 SUBNETWORKCONTROLLER = 1 AND attributeElevation = (SELECT MIN(attributeElevation) FROM ElectricDevice) WHERE 'OBJECT' = 'IN_DIAGRAM' を使用して [属性によるルート ジャンクションの設定ルールを追加 (Add Set Root Junction By Attribute Rule)] ツールを追加します。
手動およびルールによって設定されるルート ジャンクション
ダイアグラムでは、ルールによって設定されたルートと、[ルート ジャンクションの設定] ツールを使用して手動で設定されたルートが混在することができます。つまり、ユーザーが手動で他のルート ジャンクションを設定すること、またはダイアグラムの生成時/更新時に事前に定義されたルート ジャンクションを伴うダイアグラム内の既存のルート ジャンクションを削除することを妨げるものは何もありません。
ただし、ほとんどの場合、手動で設定されたルート ジャンクションは、そのダイアグラムの更新時に失われます。 実際は、属性によるルート ジャンクションの設定ルールによって設定されたルート ジャンクションのみを、ダイアグラムの更新の終了時に維持する必要があります。 唯一の例外は、ルールの処理中にジャンクションが設定されない場合です。その場合、ダイアグラムの更新前にダイアグラム内で手動で設定されたルート ジャンクションは、更新されたダイアグラム内でルート ジャンクションとして維持されます。