リンク展開ルールの操作

前提条件:

リンク展開ルールを構成する前に、ルールの実行に必要なリンク スケマティック フィーチャクラスがスケマティック データセットにすでに存在し、ルールが指定されるスケマティック ダイアグラム テンプレートに関連付けられていることを確認する必要があります。

リンク展開ルールにより、特定の値に従って、指定のスケマティック フィーチャクラスにより実装されたすべてのリンクまたはいくつかの特定のリンクが複数のリンクに展開された後に、スケマティック ダイアグラムを生成することができます。これらの値は、元のリンク自体の値とすることも、ダイアグラムに含まれる他のスケマティック フィーチャからの属性値とすることもできます。

次の一般的な例では、電子データ モデルでフェーズを管理しています。

リンク展開ルール - 使用例

新しく作成されたリンクは、同じリンク スケマティック フィーチャクラスによって実装されるリンクです。そのスケマティック フィーチャクラスによって実装される元のすべてのリンクを展開することも、リンク スケマティック フィーチャクラスに関連付けられた実際のフィーチャクラス/オブジェクト テーブルで機能する SQL フィルタにより除外されたいくつかのリンクのみを展開することもできます。

元のリンクの展開に使用する特定の値は、次のいずれかになります。

元のスケマティック リンクの値が N 個の接続に対応することを示している場合、結果として生じるスケマティック ダイアグラムに N 個の展開されたリンクが表示されます。元のスケマティック リンクは保持され、同じリンク スケマティック フィーチャクラスに基づいて(N-1)個の新しいスケマティック リンクが作成されます。元のスケマティック リンクに関連するプロパティはすべて、(N-1)個の新しいスケマティック リンクでレポートされます。

注意注意:

XML ビルダに基づくスケマティック ダイアグラムの場合、リンク展開ルールを関連付けられたフィーチャ/オブジェクト クラスに格納されている特定のフィールドから動作させるには、入力 XML ファイルで DataSourceName、UCID、および UOID アイテムをすべて指定し、展開するスケマティック リンクに関連付けられたフィーチャ/オブジェクトを明確に識別できるようにする必要があります。

以下の手順は、リンク展開ルールがすでに [ルール] タブに追加されている場合に、[ルール] タブ ツールバーの [ルール プロパティ] ボタンをクリックすると表示されるリンク展開ルール プロパティ ページの構成に重点を置いています。[ルール] タブに新しいルール アイテムを追加したり、[ルール プロパティ] ページを表示する方法については、「スケマティック ダイアグラム テンプレートでのスケマティック ルールの指定」をご参照ください。

[ルール] タブに追加されたばかりのリンク展開ルールの場合、[ルール] タブ ツールバーの [プロパティ] ルール アイコン[ルール プロパティ] ボタンをクリックすることにより、次のように [ルール プロパティ] ダイアログ ボックスが開かれます。

リンク展開のルール プロパティ ページ

手順:
  1. [説明] フィールドにルールの説明を入力します。

    この説明文字列は、関連するルール アイテムの [ルール] タブに表示されます。また、スケマティック ダイアグラムの生成および更新の間にも表示され、このルールが実行されていることをユーザに通知します。

  2. ルールが連動するリンク スケマティック フィーチャクラスの名前を、[展開するリンク スケマティック フィーチャクラスを選択] ドロップダウン リストから選択します。

    このドロップダウン リストには、スケマティック ダイアグラム テンプレートに関連付けられているすべてのリンク スケマティック フィーチャクラスが表示されます。

    ルール構成のこの手順において、選択したスケマティック フィーチャクラスによって実装されるすべてのリンクが展開候補になります。

  3. 特定のリンクのみを展開するよう、指定したリンク スケマティック フィーチャクラスで SQL フィルタを指定する場合は、次の操作を実行します。
    1. [関連するフィーチャ/オブジェクト クラスに SQL フィルタを追加] エリアの右にある [編集] ボタンをクリックします。

      [SQL クエリ] ダイアログ ボックスが表示されます。

    2. 必要な SQL 文を作成します。

      フィルタリングは、指定されたリンク スケマティック フィーチャクラスに関連付けられているフィーチャクラスまたはオブジェクト クラスに格納されるフィールドで行われます。

    3. [OK] をクリックします。

      [SQL クエリ] ダイアログ ボックスが閉じられ、指定した SQL フィルタが [関連するフィーチャ/オブジェクト クラスに SQL フィルタを追加] エリアに自動的に表示されます。

    指定した SQL フィルタが、展開候補となるスケマティック リンクのサブセットの決定に使用されます。SQL フィルタを確認しない場合、ルール実行時に展開は行われません。

  4. 展開するリンクが構成されたので、今度はこれらのリンクの展開方法を決定する値に注目する必要があります。この構成は、[値のソースを選択] セクションで行います。
    • ルールの操作対象となる値が、指定されたリンク スケマティック フィーチャクラスに関連付けられているフィーチャクラス/オブジェクト テーブルのフィールドに格納されている場合、このフィールドを指定する必要があります。
    1. [フィールドを選択] オプションをオンにします。
    2. ドロップダウン リストから必要なフィールドを選択します。

      選択したリンク スケマティック フィーチャクラスに関連付けられているフィーチャクラス/オブジェクト テーブル内のすべてのフィールドがこのリストに表示されます。

    3. 選択したフィールドにコード値ドメインがあり、直接フィールド値を使用する代わりにこれらのエンコードされた値で初期スケマティック リンクの展開方法を決定する場合は、[フィールドにコード値ドメインがある場合、コード名を使用] チェックボックスがオンになっていることを確認します。
    • ルールの操作対象となる値が、その用途に作成された特定の拡張条件によって返される場合、次の操作を実行します。
    1. [拡張条件の使用] チェックボックスをオンにします。
    2. ドロップダウン リストから必要な拡張条件を選択します。

    リンク展開ルールの拡張条件は、esriSchematic.ISchematicExpandLinksByAttributeExtended インタフェースを実装するコンポーネントです。

    注意注意:

    [リンク展開ルール属性] ダイアログ ボックスの [拡張条件の使用] ドロップダウン リストおよび [拡張条件の使用] オプションは、そのコンピュータの Esri スケマティック ルール拡張条件カテゴリにカスタムの展開リンク条件が登録されていない場合には使用できません。

    拡張条件コンポーネントは、スケマティック リンクの展開候補から動作し、候補リンクごとに期待される値を返します。このような拡張条件は通常、ルールの操作対象となる値が指定されたリンク スケマティック フィーチャクラスに関連付けられたフィールドではなく別のフィーチャクラス/オブジェクト テーブルに格納されているフィールドの値である場合(たとえば、リンク原点または端点のノード スケマティック フィーチャクラスのフィールドにこれらの値が格納されている場合)に作成されます。

  5. 次に、[値の形式] セクションで、ルールによって処理される値のタイプを指定する必要があります。
    • 文字列値には、[文字を連結] を選択します。その場合、各値が 1 文字ずつデコードされ、この文字数によって、各初期リンクに対して作成されるリンクの数が決まります。
    • 返された情報が値のリストに対応し、各値が特定の文字で区切られている場合、[区切り記号と文字 =] を選択し、右側のテキスト ゾーンで文字区切り記号を指定します。リスト内の値の数によって、展開されるリンクの数が決まります。
    • 情報に 2 つの整数値が含まれ、各値が特定の文字で区切られている場合、[区切り記号と値の範囲 =] を選択し、右側のテキスト ゾーンで文字区切り記号を指定します。最初の値は 2 番目の値より小さな値にする必要があります。そうでない場合、関連するリンクは展開されません。
    • 整数値には、[整数値] を選択します。この場合、これらの整数によって、各初期リンクから展開するリンクの数が決まります。
  6. 次に、[ターゲット属性] エリアで、作成された各リンクに関連するデコードされた値がルールによって保存されるように、スケマティック PropertySet 属性を指定できます。[名前] ボックスに、このスケマティック属性名を入力します。

    たとえば、ルールが操作する値が文字の組み合わせまたは一連の文字である場合、デコードされた文字数によって作成されるリンクの数が決まり、デコードされた各文字がこれらのリンクのいずれかに対応します。デコードされた文字を保持して、展開されたリンクの特定のレイヤ プロパティの構成に使用できます。[名前] ボックスで PropertySet 属性を定義すると、後で使用できるように、デコードされた値がルールによって保存されます。

    展開されたリンク スケマティック フィーチャクラスに対して、指定した属性がまだ存在しない場合、これはルール構成の整合チェック実行時に自動的に作成されます。

    ヒントヒント:

    レイヤ プロパティでデコードされた値を使用する場合、PropertySet 属性をリンク スケマティック フィーチャクラスのフィールドとして格納するように構成する必要があります。

    注意注意:

    リンク スケマティック フィーチャクラスにすでに存在している属性名を指定する場合、別の目的ですでに使用されている PropertySet を使用しないよう注意してください。この PropertySet の値は、実行時にルールの影響を受けるすべてのリンクに対して上書きされます。

    注意注意:

    デコードされた値のターゲット属性の指定はオプションです。

  7. ルールの操作対象となる値のないすべてのリンクを、操作結果であるダイアグラムに表示しないようにするには、[値のないリンクを表示] をオフにします。

    この場合、リンク展開ルールで処理されたリンクのみがダイアグラムに表示されます。

  8. [OK] をクリックして [ルール プロパティ] ダイアログ ボックスを閉じます。

関連項目


7/10/2012