前提条件:
フィーチャの削除ルールを構成する前に、ルールの実行に必要なスケマティック フィーチャクラスがスケマティック データセットにすでに存在し、ルールが指定されるスケマティック ダイアグラム テンプレートに関連付けられていることを確認する必要があります。
フィーチャの削除ルールでは、指定されたスケマティック フィーチャクラスによって実装されたすべてまたは特定のスケマティック フィーチャを、スケマティック ダイアグラムから削除できます。このルールでは、実行時にネットワーク トポロジを保持しません。たとえば、スケマティック ノードが削除されるように構成されている場合、このルールでは、削減ルールのようにそれらに接続されたリンクをターゲット ノードに再接続することはありません。ノードの削除により、それに接続されるリンクも結果として生じるダイアグラムから削除されます。
指定されたフィーチャクラスによって実装されたすべてのスケマティック フィーチャを削除することも、以下に従って除外されたスケマティック フィーチャのみを削除することもできます。
- そのスケマティック フィーチャクラスに関連付けられた実際のフィーチャクラス/オブジェクト テーブルで機能する SQL フィルター
- スケマティック フィーチャの削除候補に接続されるスケマティック フィーチャの特定のスケマティック属性、またはスケマティック フィーチャの削除候補に接続されるスケマティック フィーチャを実装するスケマティック フィーチャクラスに関連付けられた実際のフィーチャクラス/オブジェクト テーブルの特定のフィールド
- 削除するスケマティック フィーチャを決定するために特に作成されたカスタムの拡張条件
以下の手順は、フィーチャの削除ルールがすでに [ルール] タブに追加されている場合に [ルール] タブ ツールバーの [ルール プロパティ] ボタンをクリックすると表示される [フィーチャの削除ルールのプロパティ] タブの構成に重点を置いています。[ルール] タブに新しいルールを追加したり、[ルール プロパティ] ダイアログ ボックスを表示する方法については、「スケマティック ダイアグラム テンプレートでのスケマティック ルールの指定」をご参照ください。
[ルール] タブに追加されたばかりのフィーチャの削除ルールの場合、[ルール] タブ ツールバーの [ルール プロパティ] ボタン をクリックすることにより、次のように [ルール プロパティ] ダイアログ ボックスが開かれます。
- [説明] テキスト ボックスにルールの説明を入力します。
この説明文字列は、関連するルール アイテムの [ルール] タブに表示されます。また、スケマティック ダイアグラムの生成および更新の間にも表示され、このルールが実行されていることをユーザーに通知します。
- 削除するスケマティック フィーチャクラス名を [削除するスケマティック フィーチャクラスを選択] ドロップダウン リストから選択します。
このリストには、スケマティック ダイアグラム テンプレートに関連付けられているすべてのスケマティック フィーチャクラスが表示されます。
ルール構成のこの手順において、選択したスケマティック フィーチャクラスによって実装されるすべてのスケマティック フィーチャが削除対象として構成されます。
- リンクの削除後に孤立するノードについても、結果として生じるダイアグラムから自動的に削除する場合は、[リンクが削除されたことで孤立したノードを削除] をオンにします。
- 特定のノードのみを削除するよう、指定したスケマティック フィーチャクラスで SQL フィルターを指定する場合は、次の操作を実行します。
- [関連するフィーチャ/オブジェクト クラスに SQL フィルターを追加] エリアの右にある [編集] ボタンをクリックします。
[SQL クエリ] ダイアログ ボックスが表示されます。
- 必要な SQL 文を作成します。
フィルタリングは、指定されたスケマティック フィーチャクラスに関連付けられているフィーチャクラスまたはオブジェクト クラスに格納されるフィールドで行われます。
- [OK] をクリックします。
[SQL クエリ] ダイアログ ボックスが閉じられ、指定した SQL フィルターが [関連するフィーチャ/オブジェクト クラスに SQL フィルターを追加] エリアに自動的に表示されます。
指定した SQL フィルターが、削除候補となるスケマティック フィーチャのサブセットの決定に使用されます。SQL フィルターを確認しない場合、ルール実行時に削除は行われません。
- [関連するフィーチャ/オブジェクト クラスに SQL フィルターを追加] エリアの右にある [編集] ボタンをクリックします。
- 削除候補のスケマティック フィーチャが、それらに接続されるスケマティック フィーチャのスケマティック属性、またはそれらに接続されるスケマティック フィーチャを実装するスケマティック フィーチャクラスに関連付けられた GIS フィーチャクラスに格納されたフィールドによって決まるようにするには、次の操作を実行します。
- [接続フィーチャ属性] チェックボックスをオンにします。
- 使用するスケマティック属性またはフィールドの名前を入力します。
- 削除するよう選択されたスケマティック フィーチャクラスがノードを実装している場合、ルールは削除候補のノードに接続されるリンクで動作します。
ノードの削除候補に接続する各スケマティック リンクに対し、ルールはまずスケマティック リンクでこの名前を持つスケマティック属性を検索します。この名前のスケマティック属性が検出されない場合、ルールはそのスケマティック リンクに関連付けられた GIS フィーチャで同じ名前のフィールドを検索します。
- 削除するよう選択されたスケマティック フィーチャクラスがリンクを実装している場合、ルールは削除候補のリンクの原点ノードおよび終点ノードで動作します。
リンクの削除候補に接続する各スケマティック ノードに対し、ルールはまずスケマティックノードでこの名前を持つスケマティック属性を検索します。この名前のスケマティック属性が検出されない場合、ルールはそのスケマティック ノードに関連付けられた GIS フィーチャで同じ名前のフィールドを検索します。
- 削除するよう選択されたスケマティック フィーチャクラスがノードを実装している場合、ルールは削除候補のノードに接続されるリンクで動作します。
- スケマティック フィーチャの削除候補が最終的に削除されるために、接続されるすべてのスケマティック フィーチャに対して、この属性/フィールド値が等しいまたは等しくない必要がある場合、[等しくない] または [等しい] を選択します。
- 削除するよう選択したスケマティック フィーチャクラスがノードを実装している場合、[等しくない] を選択すると、削除候補のスケマティック ノードは、接続されたリンクに対して指定されたスケマティック属性/フィールドが存在しない、または接続されたすべてのリンクに対してスケマティック属性/フィールドが存在するがフィールド値が異なる場合にのみ削除されます。[等しい] を選択すると、削除候補のスケマティック ノードは、接続されたすべてのリンクに対して指定されたスケマティック属性/フィールドが同じ値で存在する場合にのみ削除されます。
- 削除するよう選択したスケマティック フィーチャクラスがリンクを実装している場合、[等しくない] を選択すると、削除候補のスケマティック リンクは、原点ノードまたは端点ノードのいずれかに対して指定されたスケマティック属性/フィールドが存在しない、または原点ノードおよび端点ノードの両方に対してスケマティック属性/フィールドが存在するがフィールド値が異なる場合にのみ削除されます。[等しい] を選択すると、削除候補のスケマティック リンクは、原点ノードおよび端点ノードの両方に対して指定されたスケマティック属性/フィールドが同じ値で存在する場合にのみ削除されます。
- 特定の拡張条件を指定して削除候補のノードを除外することもできます。このような条件を使用する場合、次の操作を実行する必要があります。
- [拡張条件の使用] チェックボックスをオンにします。
- ドロップダウン リストから必要な拡張条件を選択します。
フィーチャの削除ルールのカスタムの拡張条件は、esriSchematic.ISchematicFeatureRemovalExtended インターフェイスを実装するコンポーネントです。
拡張条件コンポーネントは、その他すべての指定された削除オプションに従って、スケマティック フィーチャの削除候補で動作します。これによって、ルールの実行後に各ノードが削除されるかどうかが決まります。
- [OK] をクリックして [ルール プロパティ] ダイアログ ボックスを閉じます。