属性ドメインとは、フィールド タイプの適正な値を規定するルールです。テーブルまたはフィーチャクラスの特定の属性に対する許容値を表します。フィールドに配置するものを、有効なリストまたは選択肢の範囲に制限することで、データ整合性を維持します。フィーチャクラスのフィーチャまたはテーブルの非空間オブジェクトがサブタイプにグループ化されている場合は、各サブタイプに別の属性ドメインを割り当てることができます。ドメインが属性フィールドに関連付けられた場合、そのフィールドではそのドメイン内の値だけが有効となります。つまり、そのドメインに含まれていない値をフィールドに設定することはできません。
属性ドメインは、ジオデータベース内の複数のフィーチャクラス、タイプ、サブタイプにわたって共有することができます。
たとえば、配水管のフィーチャクラスと給水管のフィーチャクラスで、地表タイプ フィールドに同じドメインを使用することができます。
ドメイン ビュー
ドメインは、ドメイン ビューと呼ばれる独自の表形式のビュー内で作成および編集します。
ドメイン ビューは、[データ] タブの [設計] グループ、またはフィールド ビューおよびサブタイプ ビューの [フィールド] および [サブタイプ] タブにある [ドメイン] ボタンをクリックして開きます。
ドメイン ビューでは、既存ドメインの表示、ドメインのプロパティおよび値の編集、および新たなドメインの作成が可能です。
ドメイン ビューの [ドメイン] タブにある [フィルター テキスト] テキスト ボックスを使用して、ビューに表示されているドメインをフィルタリングできます。テキストを入力するとビューが更新され、ドメイン ビュー フィールドに一致するテキストが存在するドメインのみが表示されます。
以下の図には、ドメイン ビューに Campus Editing データ モデルに関連するドメインの一部が表示されています。
ビューの各行には既存のドメインが表示され、これらは名前、説明、フィールド タイプ、ドメイン タイプ、スプリット ポリシー、マージ ポリシーなどの共通のプロパティを共有しています。
ドメインのプロパティ
ドメインを作成または変更する際には、次のプロパティを編集する必要があります。
名前と説明
ドメインを新規作成する際には、そのドメインによって制御されるパラメーターを表す名前を指定します。一重引用符 (' と ` )、およびアポストロフィ (') はドメインの名前に使用できません。ドメインが作成されると、フィールド ビューまたはサブタイプ ビューで特定のフィールドに関連付けるドメインを選択する際、ドメイン ドロップダウン メニューにドメイン名が表示されます。
ドメインの説明は、ドメインの目的を説明する短い文章です。
フィールド タイプ
フィールド タイプは、ドメインを関連付けることができる属性フィールドの種類です。
フィールド タイプは、次のいずれかに設定できます。
- Short: Short integer
- Long: Long integer
- Float: 単精度浮動小数点数
- Double: 倍精度浮動小数点数
- Text (コード値ドメインのみ) : 英数字
- Date: 日付と時刻のデータ
フィールド タイプを設定すると、フィールド ビューおよびサブタイプ ビューにあるそのタイプのフィールドに対するドメイン ドロップダウン リストに、ドメインの名前が表示されます。
ドメイン タイプ
ドメインを作成する際には、ドメインの種類を指定する必要があります。
属性ドメインには次の 2 種類があります。
- 範囲ドメイン: 範囲ドメインは、数値属性の有効な値の範囲を指定します。範囲ドメインを作成する際には、有効な値の最大値と最小値を入力します。範囲ドメインは、Short integer、Long integer、Float、Double、Dateの属性タイプに適用することができます。たとえば、水道管のフィーチャクラスの場合は、サブタイプとして送水管、配水管、給水管を指定することができます。配水管の水圧が 50 ~ 75psi であるとします。配水管オブジェクトを有効にするためには、水圧の値が 50 ~ 75 psi の範囲内の値でなければなりません。
- コード値ドメイン: コード値ドメインは、テキスト、数値、日付など、あらゆる種類の属性に適用することができます。コード値ドメインは、属性に対して一連の有効な値を指定します。たとえば、水道管は、pavement (舗装道路)、gravel (砂利)、sand (砂)、none (地上に露出) など、GroundSurfaceType 属性フィールドで指定されたさまざまなサーフェスの下に埋設されます。コード値ドメインには、データベースに格納されている実際の値 (たとえば、舗装道路は 1) と、その値の意味のわかりやすい説明が含まれています。コード値ドメインの整合チェックは、フィールド値をドロップダウン リストから選択することによって行われます。
スプリット ポリシーとマージ ポリシー
データの編集時に、1 つのフィーチャを 2 つのフィーチャに分割したり、複数のフィーチャを 1 つのフィーチャにマージすることがよくあります。たとえば、区画整理の結果、土地のデータベースに格納されている 1 つの土地区画が 2 つの土地区画に分割されることがあります。同様の区画整理によって、隣接する 2 つのパーセルが 1 つのパーセルにマージされることもあります。
フィーチャのジオメトリ上では、この種の編集処理の結果は容易に予測できますが、それらが属性値に及ぼす影響は予測できません。フィーチャを分割するときの属性値の振舞いは、その属性にドメインが適用されている場合は、属性のスプリット ポリシーによって制御されます。2 つのフィーチャをマージする場合は、ドメインが適用された属性の値は、ドメインのマージ ポリシーによって制御されます。
メモ:
フィールドにドメインが割り当てられていない場合、元のフィーチャから新しいフィーチャに属性値がコピーされます。メモ:
元のフィールドの値が NULL である場合、新しいフィーチャの値も NULL になります。各属性ドメインには、スプリット ポリシーとマージ ポリシーの両方を定義できます。フィーチャが分割またはマージされた場合、ジオデータベースはこれらのポリシーに基づいて、最終的なフィーチャの特定の属性値を決定します。
スプリット ポリシー
ドメインが適用されたテーブル、フィーチャクラス、またはサブタイプの属性については、ドメインのプロパティで設定された 3 つのスプリット ポリシーのいずれかを指定することができます。これによって出力オブジェクトの属性値が制御されます。
- デフォルト値: 分割後の 2 つのフィーチャの属性には、該当するフィーチャクラスまたはサブタイプの属性のデフォルト値が適用されます。
- 複製: 分割後の 2 つのフィーチャの属性には、元の属性値のコピーが適用されます。
- ジオメトリ比: 分割後の 2 つのフィーチャの属性には、元のフィーチャの値の比率が適用されます。この比率は、元のジオメトリの分割時に使用した比率に基づいています。ジオメトリを均等に分割した場合、それぞれの新規フィーチャの属性には、元のオブジェクトの属性の 2 分の 1 の値が割り当てられます。ジオメトリ比ポリシーは、数値フィールド タイプに対応するドメインにのみ適用されます。
マージ ポリシー
2 つのフィーチャを 1 つのフィーチャにマージする際には、マージ ポリシーが新規フィーチャの属性値を制御します。
ドメインが適用されたテーブル、フィーチャクラス、またはサブタイプの属性については、ドメインのプロパティで設定された 3 つのマージ ポリシーのいずれかを指定することができます。これによって出力オブジェクトの属性値が制御されます。
- デフォルト値: マージ後のフィーチャの属性には、該当するフィーチャクラスまたはサブタイプの属性のデフォルト値が適用されます。非数値フィールドおよびコード値ドメインには、このマージ ポリシー以外は適用できません。
- 合計値 : マージ後のフィーチャの属性には、元のフィーチャの属性の合計値が適用されます。
- 加重平均: マージ後のフィーチャの属性には、元のフィーチャの属性値の加重平均値が適用されます。この平均値は、元のフィーチャのジオメトリに基づいています。