スケマティック属性のストレージ モードと評価モードについて
スケマティック属性を作成する際には、ストレージ モードと評価モードを指定する必要があります。ストレージ モードを指定する場合は、スケマティック属性値をスケマティック データセットに保存する必要があるかどうかを定義します。スケマティック属性の評価モードを指定すると、スケマティック属性値を再評価する時期が決まります。
スケマティック属性のストレージ モード
スケマティック属性値を保存する際には、次の 3 つのオプションがあります。
- スケマティック データセットのフィールドに保存する([フィールド])
- スケマティック データセットのプロパティ セットに保存する([プロパティ セット])
- 保存しない([ストレージなし])
名前が定義済みの属性名に対応するスケマティック属性については、ストレージを構成することはできません。このような特殊な属性のストレージはすべて Schematics によって管理されるので、構成する必要はありません。ほとんどの場合、関連するスケマティック フィーチャクラスまたはダイアグラム クラスのシステム フィールドに基づきます。
フィールド ストレージ
ほとんどの属性について、[フィールド] がデフォルトのストレージ値として提示されます。この場合、関連するスケマティック フィーチャクラスまたはダイアグラム クラスのフィールドにスケマティック属性値が保存され、スケマティック フィーチャで [個別属性] ツールを使用するときや、スケマティック レイヤを構成するフィーチャ レイヤから [属性テーブルを開く] をクリックしたときに、それらの値を使用することができます。
スケマティック属性を使用して、スケマティック ダイアグラムにおけるスケマティック フィーチャの表示やラベリングを指定するには、関連するスケマティック フィーチャクラスのフィールドとして属性値が保存されていなければなりません。
- まず、ArcCatalog で、関連するフィールドをスケマティック フィーチャクラスまたはダイアグラム クラスに作成します。
- 次に、スケマティック データセット エディタで、スケマティック フィーチャクラスまたはダイアグラム テンプレートでスケマティック属性を作成します。
プロパティ セット ストレージ
[プロパティ セット] ストレージ オプションは、スケマティック属性値をスケマティック データセットに保存するものの、関連するスケマティック フィーチャクラスまたはダイアグラム クラスのフィールドからその情報を明確に使用できるようにする必要がない場合に使用します。この場合、スケマティック属性名に対応する名前を持つプロパティ セットのプロパティは、スケマティック属性が評価されるたびに、関連するスケマティック フィーチャの PROPERTYSET フィールドまたは関連するスケマティック ダイアグラムの BLOBS フィールドで自動的に管理されます。
ストレージなし
[ストレージなし] モードは、スケマティック属性値をスケマティック データセットに保存する必要がない場合に使用します。このストレージは通常、スケマティック属性値が別の属性の一部として使用され、その別の属性の値は自身に保存される場合に指定します。
スケマティック属性の評価モード
スケマティック属性値を評価する時期には、次の 4 つのオプションがあります。
- 生成/更新時
- 編集の開始時
- 再描画/最新の情報に更新時
- 必要に応じて
生成/更新時に評価
[生成/更新時] 評価モードが指定されているスケマティック属性は、ダイアグラムの生成時に評価されます。この場合、スケマティック ダイアグラムが更新されるたびに属性値が再評価されます。スケマティック ダイアグラムの有効期間中、この特定の時期以外に属性値が再評価されることはありません。
このタイプの評価は、最もよく使用されます。
編集の開始時に評価
評価タイプが [編集の開始時] に設定されている場合、スケマティック属性はダイアグラムの生成時および更新時に評価されるだけでなく、スケマティック ダイアグラムで編集セッションが開始されるときなど、スケマティック ダイアグラムがメモリに読み込まれるたびに評価されます。この場合、属性値が変更されており、ストレージ モードが [フィールド] または [プロパティ セット] に設定されていれば、ダイアグラムの編集を保存するときに、関連するスケマティック フィーチャクラスまたはダイアグラム クラスのテーブルに新しい値が自動的に保存されます。
ダイアグラムで編集セッションが開始される際には必ず、ダイアグラムがメモリに読み込まれます。ただし、ダイアグラムを開いたときに自動的にメモリに読み込まれるようにすることもできます。
ダイアグラムの内容全体を更新しなくても定期的に評価する属性については、[編集の開始時] 評価モードがあらかじめ定義されます。また、ダイナミック カスタム クエリを使用して構成されたスケマティック フィーチャクラスに指定されている属性にも、この評価モードが定義されます。
再描画/最新の情報に更新時に評価
[再描画/最新の情報に更新時] 評価モードでスケマティック属性を構成すると、スケマティック属性値は、ダイアグラムの生成時、更新時、およびメモリへの読み込み時に加えて、スケマティック ダイアグラムが再描画または最新の情報に更新されたとき(ダイアグラムで縮尺や範囲が変更されたときや、ダイアグラムに含まれるスケマティック フィーチャが移動されたときなど)にも体系的に再評価されます。
この評価モードは、頻繁に変更されるデータにスケマティック属性がリンクされている場合(SCADA アプリケーションなど)に役立ちます。
他の評価モードを指定したスケマティック属性と同様に、[再描画/最新の情報に更新時] 評価モードを指定したスケマティック属性は、属性タイプに関係なく、スケマティック フィーチャ シンボルを設定するために直接使用できます。ただし、[再描画/最新の情報に更新時] 評価モードのスケマティック属性が関連フィールド タイプの属性である場合、ラベリングに直接使用することはできません。そのような特別の場合、ArcMap ラベリング エンジンでは、関連付けられたフィールド値の読み込みはデフォルトで強制されません。ただし、次のような高度なラベル条件式を使用すると、この読み込みを強制できます。
[再描画/最新の情報に更新時] 評価モードを指定した関連フィールド スケマティック属性に基づく、ラベルを取得するための高度な条件式によって、適切に表示されます。
入力パラメータ:
- [ATTR_AS_LABEL]:ラベリングに使用するスケマティック属性。
- [PROPERTYSET]、[DATASOURCEID]、[UCID]、および [UOID]:関連付けられたフィールド値を常に最新の状態にするために読み込む必要があるスケマティック フィーチャクラス フィールド。
[DATASOURCEID]、[UCID]、および [UOID] フィールドは、[ラベル条件式] ダイアログ ボックスの [フィールド] リストから使用でき、次の高度な条件式を構築するときにこのリストから選択できます。[PROPERTYSET] フィールドは、このリストから使用できないため、それについては式のボックスに直接入力する必要があります。
Function FindLabel([PROPERTYSET],[DATASOURCEID], [UCID], [UOID], [ATTR_AS_LABEL]) FindLabel = [ATTR_AS_LABEL] End Function
必要に応じて評価
[必要に応じて] 評価モードのスケマティック属性は通常、別の属性を構成するスケマティック属性に構成します。この場合、属性は、他の属性が評価されるときに評価されます。