スケマティック ルールは、スケマティック ダイアグラムの生成時と更新時に実行される特殊なタスクで、ダイアグラムのコンテンツを単純化するか、新しいスケマティック フィーチャを作成するために行われます。これは初期のコンテンツに基づいて行われます。
スケマティック ルールの実行
スケマティック ビルダは、処理対象として想定している指定の入力データから、メモリ内のダイアグラムにスケマティック フィーチャを作成します。スケマティック ビルダを構成すれば、スケマティック ルールをメモリ内のスケマティック フィーチャに対して実行して、自動的にダイアグラム コンテンツを単純化させるか (削減ルール)、コンテナなどの新しいスケマティック フィーチャをダイアグラム内に作成させることができます (リレーションシップ ルール)。ダイアグラムの生成時と更新時に、スケマティック ビルダがメモリ内で生成/更新処理を終えるとすぐにルールが自動的に作動します。そして、プロセスの終わりにダイアグラムがスケマティック データセットに保存されるとき、ビルダの処理結果とルールの処理結果の両方がダイアグラム コンテンツに反映されます。
スケマティック ルールの構成
スケマティック ルールは、スケマティック データセット エディタを使ってダイアグラム テンプレート レベルで指定します。スケマティック ルールは、ビルダに関係なく、すべてのスケマティック ダイアグラム テンプレートに関して構成できます。指定した各ルールを編集することができ、ルールのパラメータをいつでも変更することができます。
スケマティック ダイアグラム テンプレートでのスケマティック ルールの構成の詳細
ダイアグラム生成/更新時に実行されるように、いくつかのルールを構成できます。その場合、ルールはエントリの順序に従ってつなぎ合わされます。この順序は必要に応じて変更することもできます。
あらかじめ用意されているスケマティック ルール
ArcGIS Schematics 10.1 には、生成するスケマティック ダイアグラムを自動的に単純化または増強できる 8 個のスケマティック ルールが用意されています。
単純化ルール
- 優先度によるノード削減、フローによるノード削減、ルート ノード削減という 3 種類のノード削減スケマティック ルールを構成すると、ある一定の数のリンクに接続されているノードや、ある特定の基準を検証するノードなどを自動的に削減できます。これらのルールは、トポロジを維持しながらグラフの単純化を行います。
- 関連フィーチャの折りたたみスケマティック ルールを構成すると、グラフのトポロジを維持しながら関連するすべてのスケマティック フィーチャが自動的に折りたたまれるスケマティック ダイアグラムを単純化できます。
- フィーチャの除去スケマティック ルールを構成すると、グラフのトポロジを維持せずに、ある特定の基準を検証する一部または全部のスケマティック ノードまたはリンクを自動的に除去できます。
左のスクリーン ショットは、2 つの接続がある全ノードを自動的に削減するように構成された「優先度によるノード削減」ルールの影響を示しています。ダイアグラム生成の入力となる選択された GIS フィーチャの間の赤い点に注目してください。
増強ルール
- リレーションシップルールでは、リレーションシップ クラスに格納されている情報に関してスケマティック フィーチャやリレーションを自動的に作成できます。
- 空間検索ルールは、ダイアグラム生成の初期入力として指定されたフィーチャと関連する新しいフィーチャをその位置に基づいて検出し、検出された新しいフィーチャを生成されたダイアグラムに自動的に追加するのに使用されます。
- リンクの展開ルールを構成すると、特定の値に従って全部または特定のリンクがいくつかのリンクに展開されるダイアグラムを生成できます。これらの値は、元の入力リンク自体から取られるか、ダイアグラム内の他のスケマティック フィーチャの他の属性から取られます。
左のスクリーン ショットは、入力ポリゴンと関連する非空間オブジェクトを生成されたスケマティック ダイアグラムに自動的に追加するように構成された「リレーションシップ」ルールの影響を示しています。
独自のスケマティック ルールの開発
Schematics API を使用すれば、COM 準拠のプログラミング言語で独自のスケマティック ルールを一から開発することもできます。Schematics は、適用できるルールを標準のルールと同様に処理します。ISchematicRule と IPropertyPage の実装により、どのスケマティック ダイアグラム テンプレートでも [ルール] タブから独自のルールを構成できるようになります。
ArcObjects for .NET Help System には、適用できるルールの実装を例示した 2 つの SDK サンプルがあります。これらは「Implementing a schematic rule and its property page」と「Implementing the ISchematicRulesHelper to easily develop a custom schematic rule」にあります。