次に、2 つのダイアグラムでのリンク展開ルールの実行結果を示します。
サンプル 1 - 文字値の連結に従ったリンクの展開
次のサンプル 1 ダイアグラム (図 1.1) を実装するダイアグラム テンプレートでは、リンク展開ルールが、赤いスケマティック フィーチャ リンクをそれらのフェーズ コードに従って展開するように定義されています。
これらの赤いリンクは、LV_Line リンクに対応しており、LV_Line リンクの PhaseCode フィールド値によってそのフェーズの数が決まります。これらの文字列フィールド値は、AB、ABCD、CD などの文字を連結したものです。これらは、赤い初期スケマティック フィーチャ リンクを、新しい複数のスケマティック フィーチャ リンクに展開するために使用されます。それにより、ルールの実行後、各フェーズが新しいスケマティック フィーチャ リンクの 1 つに対応するようになります。
図 1.2 は、このリンク展開ルールをアクティブにしてダイアグラムを更新した後に、重複リンクの切り離しスケマティック レイアウト アルゴリズムをそのスケマティック ダイアグラムに実行して得られた結果を示しています。
展開されたリンク上で [個別属性] ツール を使用すると、初期スケマティック フィーチャ リンクの個別属性を表示できます。
同様に、ダイアグラム内で、展開されたスケマティック フィーチャ リンクが選択されているときに [スケマティックの選択セットをマップに反映] コマンドを使用すると、マップ内で、関連付けられたエッジ フィーチャが選択されます。
マップ内で、エッジ フィーチャが選択されているときに [マップの選択セットをスケマティックに反映] コマンドを使用すると、スケマティック ダイアグラム内で、関連付けられた展開されたリンクがすべて選択されます。
展開された各リンクを生成するために使用されるデコードされたフィールド値に対応するラベルを、これらのリンクに沿って表示する場合は、次の操作を実行します。
- リンク展開ルールのプロパティ ページを編集します。
- これらの値を格納する新しい PropertySet 属性の名前を [名前] フィールドに入力します。
- [OK] をクリックします。
- [スケマティック データセット エディター] ツールバーの [ビュー] → [プロジェクト ツリー] をクリックします。
- データセット エディターのツリーで、リンク展開ルール プロパティ ページで展開するように指定されているリンク スケマティック フィーチャクラスのエントリを展開します。
- 手順 1 で指定した名前で新しい PropertySet 属性が作成されていることを確認します。
- この PropertySet 属性のエントリをクリックします。
- そのストレージ モードが [フィールド] に指定され、その評価モードが [生成/更新時] に指定されていることを確認します。
- [スケマティック データセット エディター] ツールバーの [保存] をクリックします。
- ArcMap を起動し、リンク展開ルールが構成されているダイアグラム テンプレートによって実装されている任意のスケマティック ダイアグラムを開きます。
- 展開されるように構成されているスケマティック フィーチャ リンクに関連するフィーチャ レイヤーから [レイヤー プロパティ] ダイアログ ボックスを開きます。
- [ラベル] タブをクリックします。
- [このレイヤーのラベルを表示] をオンにします。
- [ラベル フィールド] ドロップダウン リストから PropertySet 属性名を選択します。
- [OK] をクリックします。
ダイアグラムを更新してルール パラメーターの変更を反映すると、展開されたスケマティック フィーチャ リンクは、ラベル付きで表示されます。各ラベルは、デコードされたソース値の 1 つの値に対応しています。
サンプル 2 - 端点ノードからの情報に従ったリンクの展開
次のサンプル 2 ダイアグラム (図 2.1) では、リンク展開ルールは、すべての Cables スケマティック リンクを、その元の Plants スケマティック フィーチャ ノードから使用可能な属性に従って展開するように定義されています。
このダイアグラムに含まれている Plants は、指定された数の接続をサポートします。この接続数は、Plants フィーチャクラスに格納されている特定のフィールドから取得されます。ISchematicExpandLinksByAttributeExtended インターフェイスを実装するカスタム コンポーネントが作成されています。このコンポーネントは、フィーチャクラスまたはオブジェクト テーブルからこれらのフィールド値を取得します。それにより、ルールで、これらのフィールド値を使用して Cables リンクを展開できます。
Cables スケマティック フィーチャクラスのすべてのスケマティック フィーチャに対して展開が実行されるように、リンク展開ルールのプロパティが指定されています。
図 2.2 は、このリンク展開ルールをアクティブにしてダイアグラムを更新した後に、重複リンクの切り離しスケマティック レイアウト アルゴリズムを実行して得られた結果を示しています。