属性ルールを使用すると、編集の操作性を強化して、ジオデータベース データセットのデータ整合性を向上させることができます。 属性ルールは、属性を自動的に設定し、編集操作中の無効な編集を制限し、既存のフィーチャに対して品質保証チェックを実行するためのユーザー定義のルールです。
属性ルールは、ドメインやサブタイプなど、ジオデータベースで使用される既存のルールを補完します。 たとえば、ドメインを属性フィールドに割り当てることで、有効な値のリストを編集者に提供して、データ収集プロセスをサポートできます。 さらに、フィールド演算の実行時に、属性ルールを使用して、ドメインに含まれない属性フィールドの値を制限することもできます。 ルールがデータセットに追加されたら、編集の実行時やその後に、それらのルールを評価できます。
以下の例は、属性ルールをジオデータベースでどのように使用できるかを示したものです。
- 編集時の時間の節約のために、新しく作成されたフィーチャについて、特定の属性値が自動的に設定されます。 たとえば、新しい電柱が作成されると、順序に基づいて assetID 属性が生成されます。
- データ整合性の向上に役立つように、ユーザー要件に基づいて編集をブロックできます。 たとえば、単相変圧器の作成または更新時に、phasescurrent 属性は A、B、C のいずれかでなければなりません。
- ユーザーが指定した時間に既存のフィーチャの特定の属性値を設定します。 たとえば、既存のフィーチャの fulladdress フィールドが、いくつかのテキスト フィールドを連結することで設定されます。
- 既存のフィーチャを確認して、フィールドを編集した後で確実にユーザー要件が維持されるようにします。 たとえば、電柱の高さが 65 フィートを超えた場合、その材料は鋼鉄でなければならないことを保証するために既存のフィーチャを評価できます。 この評価に合格しないフィーチャは、エラー フィーチャとしてフラグが付けられ、確認の対象になります。
注意:
多対多または属性付きのリレーションシップ クラスを作成すると、新しい中間リレーションシップ クラス テーブルが作成されます。 この中間リレーションシップ クラス テーブルは、オブジェクト クラスではありません。 したがって、このタイプのテーブルでは、ドメイン、サブタイプ、条件値、属性ルール、デフォルト値を使用することができません。
ルール タイプ
属性ルールを作成するときは、使用するルール タイプを指定する必要があります。 選択される属性ルール タイプは、タスクと、編集プロセスのどの時点でルールを評価する必要があるかによって異なります。 次に示すルール タイプの詳細を確認して、ワークフローに適用可能なルール タイプを決定します。
- 計算 - データ収集および編集の効率を高めるために、即時計算ルールは、編集パターンに基づいて属性を自動的に設定します。 これにより、新しくフィーチャが作成されるときや、既存のフィーチャが変更されるときの編集の操作性を強化できます。 バッチ計算ルールは、既存のデータに関してユーザーが指定した日時に評価されます。
- 制約 - 高品質のデータが GIS に入力されることを保証するために、制約ルールは、ユーザー定義の要件によってデータ入力を制御します。 これにより、編集操作中の無効なデータ入力が防止されるため、データ整合性を確保できます。 既存のデータの不整合を検出するには、検証ルールを使用します。
- 検証 - 指定した属性要件またはジオメトリ要件に違反するフィーチャを確認できるように、検証ルールは既存のデータ内のエラーをハイライト表示します。 これにより、影響を受けるフィーチャに対する認識を高めて、データ整合性を向上させることができます。
属性ルール ビュー
属性ルールは、属性ルール ビューと呼ばれる独自の表形式のビュー内で表示、作成、および管理されます。 属性ルール ビューにアクセスするには、直接 [カタログ] または [コンテンツ] ウィンドウでデータセットのショートカット メニューを使用します。 また、[属性ルール] ボタンをクリックして、このビューにアクセスすることもできます。このボタンは、マップ ビューでアクティブなレイヤーが選択されているか、フィールド ビューまたはサブタイプ ビューを使用している場合に、[データ] タブ (フィーチャ レイヤーの場合) または [スタンドアロン テーブル] (テーブルの場合) の [データ設計] グループで使用可能になります。
このビューの使用方法の詳細については、「属性ルールの作成および管理」をご参照ください。
Arcade での属性ルールの作成
属性ルールは、入力フィーチャクラスまたはテーブルに対して作成されます。 属性ルールを追加するには、データセットに GlobalID が必要です。エンタープライズ ジオデータベースの場合は、データ所有者として操作を実行する必要があります。 ルールは、属性ルール ビューで [属性ルールの追加 (Add Attribute Rule)] ツールまたは [属性ルールのインポート (Import Attribute Rules)] ツールを使用して作成することができます。 ルールの適用対象をルール定義の特定のサブタイプに絞ることができます。 これは、ルールをデータセット内のフィーチャのサブセットのみに適用する場合に役立ちます。
計算内容または有効なフィーチャ構成を定義するために、ArcGIS Arcade スクリプト式がルール定義の一部として使用されます。 Arcade は、ArcGIS プラットフォーム全体で使用できる移植可能な式言語です。
属性ルール タイプを作成するための要件とグローバル変数については、「Arcade プロファイル」をご参照ください。 属性ルールのスクリプト式を作成する際には、「Arcade 基本操作ガイド」および「Arcade 関数インデックス」を追加リソースとして使用できます。
Data Reviewer での属性ルールの作成
必要に応じて、ArcGIS Data Reviewer の機能を使用して属性ルールを作成します。Data Reviewer には、空間データ内で検出された一般的なエラーを識別するデータ整合チェックのライブラリが備わっています。 これらのチェックでは、フィーチャの属性、整合性、または他のフィーチャとの空間リレーションシップなど、フィーチャの品質がさまざまな観点から評価されます。
Data Reviewer チェックは構成可能であり、カスタム コードを作成または管理することなく、組織固有のデータ品質要件を実装することができます。
Data Reviewer を使用した属性ルールの管理の詳細
注意:
データセットに属性ルールを追加すると、後方互換性に影響があります。- 属性ルールは、データセットに追加された後に、ArcMap または ArcGIS Pro 2.0 以前のリリースとの互換性がなくなります。 クライアントとジオデータベースのバージョンが異なる場合の利用可能な機能については、「クライアントとジオデータベースの互換性」をご参照ください。
- 新しい Arcade 関数は、ArcGIS クライアントのどのリリースが属性ルールを含むデータセットにアクセスできるかに影響を与えます。 詳細については、「スクリプト式における Arcade の互換性」をご参照ください。
属性ルールの管理
属性ルールがジオデータベースのデータセットに対して設定されたら、いくつかの方法を使用して、これらのルールを確認および管理できます。 属性ルール ビューを使用すると、プロパティを表示したり、既存の属性ルールを変更したり、ルールを作成したりできます。 また、[属性ルール] ツールセットのジオプロセシング ツールを使用して、データセットの属性ルールを管理したり、特定のタスクのスクリプトを作成したりすることもできます。
データセットに対して arcpy.Describe 関数を使用すると、属性ルール プロパティを印刷できます。 [属性ルールにエクスポート] ツールの使用時に作成されたカンマ区切り値 (.csv) ファイルから、データセットの属性ルールを表示することもできます。
カンマ区切り値 (.csv) ファイル
データセットに対して属性ルールを一時的に無効にするには、属性ルール ビューを使用するか、[属性ルールの無効化 (Disable Attribute Rules)] および [属性ルールの有効化 (Enable Attribute Rules)] ツールを使用します。 ルールが無効化された状態にある場合、そのルールはトリガー イベントとして実行されません。 これにより、一括データ読み込みのパフォーマンスが向上するため、ルールの実行を一時停止する必要がある場合に便利です。
属性ルールは、ジオデータベース内のフィーチャクラスまたはテーブルのプロパティとして作成されます。 属性ルールは、ジオデータベースのデータセットとともにデータ転送プロセスに含まれます。コピーおよび貼り付け操作を行うか、[XML ワークスペース ドキュメントのエクスポート (Export XML Workspace Document)] および [XML ワークスペース ドキュメントのインポート (Import XML Workspace Document)] ツールを使用します。 [フィーチャクラス → フィーチャクラス (Feature Class To Feature Class)] や [テーブル → テーブル (Table To Table)] などのデータ移行ツールでは、基になるデータセットを含む属性ルールが転送されません。
既存のデータセット間で属性ルールを転送する場合は、[属性ルールのエクスポート (Export Attribute Rules)] および [属性ルールのインポート (Import Attribute Rules)] ツールを使用します。 [属性ルールのエクスポート (Export Attribute Rules)] ツールでは、属性ルールの定義が .csv ファイルに格納されます。
注意:
シーケンスは [XML ワークスペース ドキュメントのエクスポート (Export XML Workspace Document)] ツールからは除外されます。シーケンスを参照する属性ルールは、[XML ワークスペース ドキュメントのインポート (Import XML Workspace Document)] ツールの実行中、ターゲット ジオデータベースのデータには追加されません。
属性ルールの評価とエラー フィーチャの管理
データセットに対する属性ルールの評価は、編集操作中に実行するか、既存のデータに関してユーザーが指定した日時に実行することができます。 属性ルールの評価は、ルール タイプとプロパティに応じて異なる時間に実行されます。
- 即時評価
- 即時計算ルール
- 制約ルール
- 遅延評価
- バッチ計算ルール
- 整合チェック ルール
バッチ計算ルールおよび整合チェック ルールの評価により、エラーが生成され、属性ルールに違反するデータがハイライト表示されます。 各エラーは、エラー レイヤーにエラー フィーチャとして格納されます。 エラー フィーチャを検証するには、[エラー インスペクター] を品質評価のワークフローで使用します。