条件値は条件属性値と呼ばれることもあり、1 つのフィールド内の値をもう 1 つのフィールド内の値に応じて決定することができるデータ設計機能です。属性ドメインを使用して、1 つのフィールド内の有効な入力を値の設定済みリストまたは範囲に制限できます。条件値では、1 つのフィールド内の値を選択すると、もう 1 つのフィールドに入力可能なドメイン値が制限されるため、このモデルが拡張します。このように、条件値では、さらに制約を適用して、フィールドに入力できる有効な値の数を少なくすることにより、データの整合性が高くなります。これは、実世界の一部やアセットを GIS でモデル化する場合に (特に、公益事業会社で) 役立ちます。また、選択内容によって次の一連の有効な選択肢が決まる決定木や調査の質問を作成する場合にも効果的です。
注意:
テーブルまたはフィーチャクラスに条件値を作成すると、ArcMap と、ArcGIS Pro 2.3 および ArcGIS Enterprise 10.7.x 以前のリリースとの互換性が失われます。クライアントとジオデータベースのバージョンが異なる場合の利用可能な機能については、クライアントとジオデータベースの互換性をご参照ください。
条件値の適用例を自動車の購入に関連付けて説明します。
決定木は「自動車メーカーの選択 > 車種の選択 > トリム レベルの選択 > 色の選択」の順になります。
まず、自動車メーカーを選択します (この例では、ホンダ)。
選択した自動車メーカーに基づいて、複数の車種が選択可能になります。
ホンダの場合は、パイロット、CRV、アコード、およびシビックを選択できます。
トヨタの場合は、異なる車種リストが表示されます。
次に、選択した車種に基づいて、複数のトリム レベルが選択可能になります。
ホンダ パイロットの場合は、LX、EX-L、Sport、および Touring を選択できます。
選択したトリム レベルに基づいて、複数の色が選択可能になります (赤、青、黒、白など)。
決定木でのそれぞれの選択段階では、1 つ前に選択した内容に応じて異なる選択肢のリストが表示されます。別の自動車メーカーを選択すると、異なる一連の車種が表示されます。選択した車種によって選択可能なトリム レベルが決まり、トリム レベルごとに異なる一連の色オプションがあります。たとえば、それぞれの段階で選択した内容に応じて、結果が「ホンダ > パイロット > EX-L > 白」や「トヨタ > 4 ランナー > TRD スポーツ > インフェルノ」のようになります。
条件値を使用すると、データ内の各フィールド間の依存関係を設定し、1 つのフィールド内の値の選択によってもう 1 つのフィールドの有効な値のリストが決定/制限されるようにすることができます。
実世界の GIS の例として、ユーティリティ ネットワーク アセット パッケージの StructureJunction フィーチャクラスを取り上げます。設備ジャンクションのポイント フィーチャクラスには、電柱、マンホール、檀など、アセットのサブタイプが含まれています。
[電柱] サブタイプでは、ドメインがすでに 3 つのフィールドに適用されています。これらのドメインにより、各フィールドに入力できる値が有効な値のリストに制限されます。たとえば、電柱のクラスを 1、2、3、電柱の材質をグラスファイバー、木材、鋼材、電柱の高さを 30 フィート、35 フィート、40 フィート、45 フィートなどにすることができます。
これらのフィールドの有効な値をさらに制限するために、条件値を使用できます。たとえば、条件値を使用して、電柱のクラスを 1、材質をグラスファイバーのみに定義し、高さを 30、35、40、または 45 フィートのみに制限することができます。
[電柱] サブタイプの各フィールド値の間に必要な依存関係を考慮してください。このフィールド グループ (クラス、材質、および高さ) での依存関係は次のとおりです。
フィールド | 条件値 | 条件値 | 条件値 |
---|---|---|---|
クラス | 1 | 2 | 3 |
材質 | ファイバーグラス | 木材 | 鋼材 |
高さ | 30、35、40、45 | 30、35、40、45 | 50、55、60、65 |
これらの条件値を作成した後、新しい電柱フィーチャを入力するか、既存の電柱フィーチャを変更して、そのフィーチャをクラス 1 の電柱として指定すると、[材質] フィールドに入力できる値が [グラスファイバー] に制限されます。同様に、クラスが 1 で材質がグラスファイバーの電柱の高さの有効な値が 30、35、40、または 45 に制限されます。
データ内でこのように条件値を作成すると、一連のフィールドの有効な値をさらに制限し、データの妥当性と整合性を効率よく管理できるようになります。
条件値のデータの準備
条件値は、フィーチャクラスまたはテーブル内のフィールド グループを対象に作成します。条件値を作成する前に、これらのフィールドに、有効な値のリストまたは範囲を含む適切なドメインを設定しておく必要があります。
上記の電柱の例では、[クラス]、[材質]、[高さ] という 3 つのフィールドで構成されたグループに対して条件値を作成します。フィールドごとに適切なドメインが割り当てられています。たとえば、[材質] フィールドには [グラスファイバー]、[木材]、および [鋼材] という材質のドメインがあります。ドメイン値を正しく設定し、これらのドメインをそれぞれのフィールドに割り当て、依存関係を作成する対象のフィールド グループを決定したら、各ドメイン値の間に依存関係を作成する必要があります。
フィーチャクラスまたはテーブルに対して条件値を作成するには、次の操作を実行する必要があります。
- 有効な値のリストまたは範囲を含むドメインを作成します。
- これらのドメインをフィーチャクラスまたはテーブルの適切なフィールドに割り当てます。
- そのフィーチャクラスまたはテーブルに関する [条件値] ビューを開きます。
- 条件値を作成する対象のフィールドを含むフィールド グループを作成します。
- そのフィールド グループ内の各フィールド間の条件値を作成します。
[条件値] ビューを開く
[条件値] ビューでは、条件値の作成、削除、管理ができます。
[条件値] ビューを開くには、次のいずれかを行います。
- [カタログ] ウィンドウでフィーチャクラスまたはテーブルを右クリックし、[設計] にポインターを合わせて [条件値] をクリックします。
- [コンテンツ] ウィンドウでフィーチャクラスまたはテーブルを右クリックし、[設計] にポインターを合わせて [条件値] をクリックします。
- [コンテンツ] ウィンドウでレイヤーかテーブルが選択された状態で、[フィーチャ レイヤー] または [スタンドアロン テーブル] コンテキスト タブの [データ] リボンで [条件値] ボタンをクリックします。[条件値] ビューに切り替わります。
- [フィールド] ビューで、[フィールド] リボン上の [条件値] ボタンをクリックします。[条件値] ビューに切り替わります。
- [サブタイプ] ビューで、[サブタイプ] リボン上の [条件値] ボタンをクリックします。[条件値] ビューに切り替わります。
メモ:
フィーチャクラスまたはテーブルに関する [条件値] ビューを初めて開いた際に、条件値が設定されていないと、最初にフィールド グループを作成するよう求めるメッセージが表示されます。
[条件値] リボン
[条件値] ビューには、条件値を作成して管理するための独自のリボンと他のデータ設計ビューに切り替えるためのボタンが用意されています。
[条件値] リボン上には、次のグループがあります。
- クリップボード - 標準のクリップボード オプション ([貼り付け]、[コピー]、[切り取り]、および [削除]) を提供します。
- [設計] - 他のデータの設計ビューを開く、次のようなボタンがあります。
- [フィールド]
- [サブタイプ]
- [ドメイン]
- [属性ルール]
- [フィールド グループ] - [フィールド グループ] ダイアログ ボックスを開くボタンがあります。
- [条件値] - 条件値を作成し、管理する次のようなボタンがあります。
- 新規 - ビュー内にアクティブなフィールド グループがある場合は、そのフィールド グループ内のフィールドに対して条件値を作成するための行が追加されます。
- [インポート] - カンマ区切り値 (*.csv) ファイルからフィールド グループと条件値をインポートします。
- [エクスポート] - カンマ区切り値 (*.csv) ファイルにフィールド グループと条件値をエクスポートします。
- [値の廃止] - ハイライト表示された行を、廃止された条件値として設定することができます。廃止された値は、ユーザー インターフェイス内の別の場所 ([属性] ウィンドウのフィールド値など) にまだ表示されていますが、選択できない状態になっています。
- 値の ID の切り替え - ビュー内の各行に、内部で管理されている値の ID が表示されます。このボタンをクリックすると、データ グリッド内の表示/非表示が切り替わります。
- コード/説明の切り替え - このボタンをクリックすると、データ グリッド内のフィールド値にドメインのコード/説明を表示するかどうかを切り替えます。
- 保存 - [保存] をクリックするまで、[条件値] ビューに加えたすべての変更がメモリ内に保持されます。
フィールド グループの作成
フィーチャクラスまたはテーブルの各フィールド間の条件値を作成する前に、フィールド グループを作成しておく必要があります。フィールド グループは、フィーチャクラスまたはテーブル内のフィールドの名前付きコレクションです。上記の電柱の例では、電柱のクラス、材質、および高さで構成されたフィールド グループがあります。フィールド グループを作成すると、そのグループ内の各フィールド値に依存関係を割り当てることができるようになります。
フィールド グループを作成するには、以下の手順を実行します。
- [条件値] リボン上の [フィールド グループ] ボタンをクリックします。
[フィールド グループ] ダイアログ ボックスが表示されます。
- [名前] セクションで、[ここをクリックして、新しいフィールド グループを追加します。] テキストをクリックします。
[Field_Group] という新しいフィールド グループが作成されます。必要に応じて、このフィールド グループの名前を変更できます。
- [フィールドの追加] ドロップダウン メニューをクリックします。
該当するフィーチャクラスまたはテーブル内のすべてのフィールドが一覧表示されます。
- 作成したフィールド グループに含めるフィールドを選択して [追加] ボタンをクリックします。
- リストの上部にある [検索] テキスト ボックスを使用して、特定のフィールドを検索します。
- すべてのフィールドをフィールド グループに追加するには、[すべて選択] をクリックしてから [追加] をクリックします。
- [制限する] チェックボックスの選択によって、フィールド グループが制限されるかどうかを指定します。
- オンのままにすると制限付きのフィールド グループが作成され、フィールド グループのフィールドに入力される値は条件値として指定された値に制限されます。条件値を使用するときに編集を制御できるよう、フィールド グループはデフォルトで制限付きに設定されています。
- 制限付きの設定を無効にするには、[制限する] チェックボックスをオフにします。この設定をオフにすると、作成されるフィールド グループは制限付きではなくなります。そのため、条件値として指定されていない値でもフィールド グループにコミットできるようになります。
- [OK] をクリックして、フィールド グループを作成します。
ヒント:
キーボード上の次のショートカット キーを使用して、[フィールド グループ] ダイアログ ボックス内を移動できます。- Ctrl + N - 新しいフィールド グループを作成します。
- Alt + G - ダイアログ ボックスの上部にある [フィールド グループ] データ グリッドにポインターを移動させます。
- Alt + A - [フィールドの追加] ドロップダウン メニューにポインターを移動させます。
- Alt + F - ダイアログ ボックスの下部にある [フィールド] データ グリッドにポインターを移動させます。
条件値の作成
フィールド グループを作成したら、そのフィールド グループに属している各フィールドの条件値を作成できます。
[条件値] ビューで使用中のフィーチャクラスまたはテーブルに複数のフィールド グループが関連付けられている場合、これらのフィールド グループを切り替えるには、[フィールド グループ] ドロップダウン メニューをクリックして、別のフィールド グループを選択します。
[条件値] ビューで使用中のフィーチャクラスまたはテーブルにサブタイプがある場合、これらのサブタイプを切り替えるには、[サブタイプ] ドロップダウン メニューを使用します。これで、各サブタイプのフィールドに別々の条件値を設定できるようになります。手順を開始する前に、[サブタイプ] ビュー でサブタイプ レベルのフィールドにドメインが適用されていることを確認します。
- フィールド グループ内に条件値を作成するには、リボン上の [新規作成] ボタンをクリックするか、[クリックして条件値を追加する] と表示されている空の行をクリックします。
- フィールド グループ内のフィールドごとに、ドロップダウン メニューからフィールド値を選択します。
値 <ANY> および <NULL> をドロップダウン メニューから条件値として追加することもできます。<ANY> は常に (条件値を追加するフィールドにドメインが適用されていない場合でも) 使用可能であり、<NULL> はフィールドで NULL 値が許可されている場合にのみ使用できます。
- <ANY> - 条件値として <ANY> を追加すると、フィールドに入力されたすべての値が有効と見なされます。
- <NULL> - 条件値として <NULL> を追加すると、フィールドに入力された NULL 値が有効と見なされます。
- 作成する依存関係の数だけ、手順 1 と手順 2 を繰り返します。すべて終了したら、[保存] をクリックして変更内容を保存します。
メモ:
アクティブなマップに保存されていない編集内容がある場合は、[保存] ボタンが無効になり、情報バナーで通知されます。[保存] ボタンを再び有効にするには、まずマップ内の編集内容を保存または破棄する必要があります。上記の電柱の例では、[電柱の依存関係] というフィールド グループ内の一連の条件値が次のように表示されます。
データに対する条件値の準備が終了した後で、[属性] ウィンドウや [属性テーブル] ビューなどでの編集中に値をフィールドに入力すると、作成した制限がアプリケーションに適用されます。
条件値の廃止
状況によっては、条件値を廃止しなければならない場合があります。条件値を廃止した後も、その条件値が [属性] ウィンドウなどの場所にあるフィールドの有効な値のリストにまだ表示されますが、使用不可になっているため、フィールド値として選択することができません。たとえば、組織ではアスベストを建築材料として使用していませんが、現在のアセットでアスベストが使用されている場所が多数存在します。つまり、この値は一部のフィーチャの建築材料のフィールドに有効な値としてまだ入力されている可能性がありますが、これ以降に使用できなくなります。値がどのフィールドでも使用されないようにするために、その値を廃止することができます。
条件値を廃止するには、廃止する行を選択して、リボン上の [値の廃止] ボタンをクリックします。
その値をもう一度有効にする場合は、該当する行を選択して [値の廃止] ボタンをクリックすると、条件値の廃止を解除できます。
条件値のエクスポートとインポート
所定のテーブルまたはフィーチャクラスの条件値やフィールド グループを共有する場合や、バックアップを作成する場合、またはスキーマ編集のためにマスター データベースを広範にわたってロックせずに更新する場合は、エクスポートとインポートが便利です。
[条件値] リボンの [エクスポート] ツール、または [条件値のエクスポート (Export Contingent Values)] ジオプロセシング ツールを使用し、フィールド グループと条件値をカンマ区切り値 (*.csv) ファイルにエクスポートできます。その後、Excel などの編集アプリで *.csv ファイルを開き、変更内容を確認したり、変更を行ったりできます。
同様に、[条件値] リボンの [インポート] ツール、または [条件値のインポート (Import Contingent Values)] ジオプロセシング ツールを使用し、フィールド グループと条件値をカンマ区切り値 (*.csv) ファイルからインポートできます。これにより、変更内容を、選択したテーブルまたはフィーチャクラス内の既存の条件値でオーバーライドしたり、それらの条件値とマージしたりできます。インポート後、変更内容を [条件値] ビューで確認し、更新が完了したら保存することができます。
エクスポートとインポートの処理は 2 つの *.csv ファイルで行われます。そのうち 1 つはフィールド グループ用で、インポート / エクスポートに関与するフィールドに関する情報が含まれます。もう 1 つは条件値用で、定義された値のタイプ、値、説明など、さまざまなメタデータの詳細が含まれます。[条件値] リボンの [値の ID の切り替え] ボタンと [コード/説明の切り替え] ボタンを使用し、条件値の [値 ID] とドメイン コードを表示できます。これらのツールは、エクスポートしたファイルを使用するときに、フィールドの割り当てを支援します。これらのファイルの書式設定については、「条件値のエクスポート」をご参照ください。