演習 4: スケマティック属性を構成する
この演習では、スケマティック属性の構成について理解します。次の作業を行う方法を学びます。
- 属性の作成
- 属性の削除
- 関連フィールド属性の構成
- クエリ属性の構成
- 既定属性の構成
この演習を行うには、Schematics の詳細構成チュートリアルの演習 1 と 2 を完了している必要があります。ここでは、これまでの演習ですでに行った構成に基づいて作業します。
スケマティック データセットを編集する
- ArcCatalog を開きます。
- Schematics のチュートリアル ディレクトリ(C:\ArcGIS\ArcTutor\Schematics)を参照し、選択します。
- AdvancedSchematicDB ジオデータベースをダブルクリックして、その中にある AdvancedSchematic スケマティック データセットを表示します。
-
[AdvancedSchematic] スケマティック データセットを右クリックし、ポップアップ メニューから [編集] を選択します。
スケマティック データセット エディタ アプリケーションが起動します。
- スケマティック エディタのツリーで [BrazilTemplate] ダイアグラム テンプレートが選択されていない場合は選択し、その下のスケマティック フィーチャクラスがすべて表示されるように展開します。
スケマティック属性を作成する
Schematics では、属性にはさまざまな用途があり、シンボルやラベリングのほか、接続性やリレーションシップのための高度な構成アイテムなどに使用されます。
構成ツールで属性を作成する前に、本当に属性が必要かどうかを判断する必要があります。Schematics では、ニーズやデータに応じて、いくつかの選択肢があります。
- 必要な属性がシンボルまたはラベリングのみに使用される場合、属性の取得元となるテーブルを ArcMap で結合できるのであれば、通常は、ArcMap でスケマティック レイヤに結合を設定することをお勧めします。結合をお勧めするのは、シンボルやラベリングに使用する、結合されたすべてのテーブル フィールドにエンド ユーザがすぐにアクセスできるためです。結合を設定しない場合、エンド ユーザがたとえば 10 個のテーブル フィールドにアクセスする必要があるとすると、簡単なレイヤ結合を 1 つ作成する代わりに、構成時に 10 個の属性を作成しなければならなくなります。つまり、結合を作成すると、エンド ユーザの柔軟性が向上する同時に、構成の労力も軽減されます。スケマティック レイヤにおける結合の詳細については、このチュートリアルの「演習 1」をご参照ください。
- 外部のニーズに対応するために、属性をスケマティック レコードと共に保存する必要がある場合は、スケマティック データセット エディタで属性を構成することをお勧めします。
- 接続性やリレーションシップのような高度な目的のために Schematics で属性を使用する場合は、スケマティック データセット エディタで属性を定義する必要があります。
属性を使用して接続性を定義する方法の詳細と例については、Schematics の基本構成チュートリアルの「演習 6」をご参照ください。
-
スケマティック データセット エディタのツリーで [pug_PUG_gas_plants] スケマティック フィーチャクラスを右クリックし、ポップアップ メニューから [新規属性] を選択します。
エディタ ウィンドウの右側に、新しいスケマティック属性の [プロパティ] タブが自動的に表示されます。
次の 2 つの手順を実行するまで、属性は設定されません。- [OK] ボタンをクリックします(これによって、属性のタイプが固定されます)。
- 保存します(これによって、実際にシステム内に属性が作成されます)。
-
[OK] をクリックします。
スケマティック データセット エディタのツリーの [pug_PUG_gas_plants] の下に [NewAttribute] エントリが表示されます。
属性を削除する
属性の削除については、次の点に注意してください。
- 属性を作成してから変更を加えていない場合、属性のプロパティ タブで [OK] ボタンをクリックしないうちに、ツリー ビューで別のアイテムをクリックすると、その属性は削除されます。
- 属性のプロパティ タブで変更を加えた場合、[OK] ボタンをクリックしないうちは、タブで [キャンセル] ボタンをクリックして属性を削除することができます。ツリー ビュー内の他の場所をクリックすると、属性の保存を確認するメッセージが表示されます。
- 属性を作成し、[OK] ボタンをクリックした後、[保存] ボタン をクリックせずにスケマティック データセット エディタを閉じた場合、属性は削除されます。
- 最後に、保存した属性がある場合は(少なくとも、[OK] ボタンをクリックした場合)、次の手順に従って属性を削除することができます。
- スケマティック データセット エディタのツリーで [NewAttribute] エントリを右クリックし、ポップアップ メニューから [削除] を選択します。
関連フィールド タイプの属性を作成して構成する
関連付けられたオブジェクト クラス(演習 1 で *.mxd をインポートしたときに自動的に設定されています)があるスケマティック フィーチャクラスを使用する場合は、関連フィールド属性が最も一般的です。関連フィールド属性を使用すると、GIS フィーチャクラスのフィールドを選択して、基本的にはスケマティック フィーチャクラスに追加することができます。その後、ラベリングやシンボルについては、前の演習で行ったように ArcMap で結合を作成する代わりに、スケマティック レイヤのそのフィールドを指定すればよいだけです。ここでは、pug_PUG_gas_plants GIS フィーチャクラスに関連付けられている pug_PUG_gas_plants スケマティック フィーチャクラスの NAME フィールドを使用して、この作業を行います。
-
ツリー ビューで [pug_PUG_gas_plants] スケマティック フィーチャクラスを右クリックし、ポップアップ メニューから [新規属性] を選択します。
[関連フィールド] がデフォルトの属性タイプです。必要に応じて、[タイプ] リストで別の属性タイプを選択します。この属性は、演習の後半で使用します。
-
[名前] フィールドに、「GasPlantName」と入力します。
- [ストレージ モード] オプションが [フィールド] に設定されている場合(デフォルト)、新しいフィールドがスケマティック フィーチャクラスに追加されます。そのフィールドには、[名前] フィールドに入力した名前(この場合は GasPlantName)が割り当てられます。他のストレージ モードは、別の内部アイテムや、アルゴリズムを作成する開発者が必要とする情報には役立ちますが、実際のフィールドが必要なので、エンド ユーザのラベリングやシンボルを目的とする場合は使用しないでください。
- [評価モード] は、Schematics で追跡されている値の更新時期を指定するために使用します。デフォルトの [生成/更新時] は、ダイアグラムの生成時またはダイアグラムの更新時にのみ、GIS フィーチャからスケマティック フィーチャに値が同期されることを意味します。[編集の開始時] を選択すると、ユーザがダイアグラムで編集セッションを開始するたびに、値が強制的に同期されます。[再描画/最新の情報に更新時] を選択した場合は、値が常に同期された状態になります。[再描画/最新の情報に更新時] を選択すると、ダイアグラムにパフォーマンス上の影響が生じるので、非常に特殊な状況に限って使用するようにしてください。
-
[フィールド] ドロップダウン リストから [NAME] を選択します。
このリストには、pug_PUG_gas_plants で使用可能なすべての GIS フィーチャクラス フィールドが表示されます。
- [OK] をクリックして、この属性を設定します。
- Rel_Electric フィールドを取得する別の関連フィールド属性を作成します。この属性は、クエリ属性の定義の一環としてすぐに使用します。スケマティック データセット エディタのツリーで [pug_PUG_gas_plants] スケマティック フィーチャクラスを右クリックし、ポップアップ メニューから [新規属性] を選択します。
- [名前] フィールドに、「RelElecID」と入力します。
-
[フィールド] ドロップダウン リストから [Rel_Electric] を選択します。
- [OK] をクリックします。
クエリ タイプの属性を作成して構成する
- スケマティック データセット エディタのツリーで [pug_PUG_gas_plants] スケマティック フィーチャクラスを右クリックし、ポップアップ メニューから [新規属性] を選択します。
- [プロパティ] タブの[名前] フィールドに、「RelElecName」と入力します。
-
[タイプ] ドロップダウン リストで [クエリ] を選択します。
-
[OK] をクリックして、この属性を設定します。
このバージョンでは、クエリ属性タイプに [関連するフィーチャのデータ ソースを使用] チェックボックスが追加されています。バージョン対応データを使用しており、各フィーチャと同じバージョンに基づく別のテーブルに対してクエリを実行する必要がある場合は、このチェックボックスをオンにします。これにより、関連するフィーチャの元となったバージョンを使用して、クエリが実行されます。これまでのバージョンには、このオプションはありませんでした。クエリは常にデフォルト バージョンに対して実行されていました。別のデータベースのデータに対してクエリを実行する場合、このボックスをオンにしないでください。オンにすると、構成が無視され、関連付けられたフィーチャと同じデータ ソースを使用してクエリの実行が試みられ、クエリを実行しようとしている目的のテーブルが見つからなくなります。ここではバージョン対応環境で作業していないので、このオプションを使用する必要はありません。次に、クエリを構成する必要があります。
-
[プロパティ] タブの [クエリ] セクションで [クエリ/識別子エディタ] ボタン をクリックします。
[クエリ/識別子エディタ] ダイアログ ボックスが開きます。
-
[データ ソース] ドロップダウン リストで、ソース データが保存されている [Brazil.gdb] を選択します。
そのデータ ソースで使用可能なテーブルのリストが表示されます。
-
[テーブル] リストをスクロールして、[pug_PUG_electric] エントリをダブルクリックします。
[クエリ] セクションにデフォルト クエリが表示されます。
次に、ユーザ ダイアグラムでガス プラントに基づくレコードを返すように、このクエリをフィルタリングする必要があります。そのため、上で定義した RelElecID 属性から取得される objectID に基づく行を取得します。 -
既存の文字列の最後に「where objectid = ?」を追加して、クエリ文字列を変更します。
[パラメータ] セクションが新しく開きます。
- [パラメータ] セクションの [名前] ドロップダウン フィールドで [RelElecID] を選択します。
- これは数値なので、[テキスト] チェックボックスをオフにします。
- [テスト値] フィールドに「1」と入力します。
-
[クエリ] セクションの [結果の表示] ボタンをクリックします。
[結果] セクションに、CAMACARI 電気プラントを表す 1 行が表示されます。確認するには、名前フィールドまでスクロールする必要があります。
-
フォームの下にある [識別子] ドロップダウンで [NAME_] を選択します。
これで、ユーザ ダイアグラムの各 pug_PUG_gas_plant について、関連フィールド属性から関連する電気プラント ID が取得され、pug_PUG_electric テーブルに対して、その電気プラントの名前を取得するクエリ属性が実行されます。
- [OK] をクリックして [クエリ/識別子エディタ] フォームを閉じます。
既定属性を作成して構成する
既定属性を使用すると、複数の属性を組み合わせて、場合によってはテキストを追加することができます。この例では、2 つの属性を組み合わせます。さらにテキストを追加して、pug_PUG_gas_plant レコードに、「電力供給プラント: <電気プラント番号> - <電気プラント名>」のようなラベルが表示されるようにします。
- スケマティック データセット エディタのツリーで [pug_PUG_gas_plants] スケマティック フィーチャクラスを右クリックし、ポップアップ メニューから [新規属性] を選択します。
- [プロパティ] タブの[名前] フィールドに、「ElectricFormat」と入力します。
-
[タイプ] ドロップダウン リストから [既定] を選択します。
-
形式フィールドに、「電力供給プラント: %s - %s」と入力します。
%s は、他の属性 1 つを渡すために使用するプレースホルダです。この場合は、関連する電気プラントの ID と名前を使用します。
- [パラメータ] グリッドで、上のドロップダウン リストから [RelElecID] を選択します。
-
[パラメータ] グリッドで、下のドロップダウン リストから [RelElecName] を選択します。
- [OK] をクリックして、この属性を設定します。
- [スケマティック データセット エディタ] ツールバーの [保存] ボタン をクリックします。
- スケマティック データセット エディタを閉じます。
属性の変更をテストする
-
ArcMap を使用して Brazil.mxd ファイルを開きます。
このファイルは C:\ArcGIS\ArcTutor\Schematics\Schematics_Configuration\Mixed_Data にあります。
- ArcMap の選択ツールを使用して、現在のビューのすべてのアイテムを選択します。
-
[スケマティック] ツールバーの [スケマティック ダイアグラムの新規作成] ボタン をクリックします。
[スケマティック ダイアグラムの新規作成] ダイアログ ボックスが開きます。
-
[スケマティック データセットまたはフォルダ] ドロップダウン リストの横にある参照ボタン をクリックします。
[スケマティック データセット、またはスケマティック フォルダを選択] ダイアログ ボックスが開きます。
- このダイアログ ボックスを使用して、C:\ArcGIS\ArcTutor\Schematics にある AdvancedSchematicDB ジオデータベース内の AdvancedSchematic スケマティック データセットを参照し、選択します。
-
[追加] ボタンをクリックします。
構成に含まれているダイアグラム テンプレートは 1 つ(BrazilTemplate)だけなので、[スケマティック ダイアグラムのテンプレート] セクションでそのテンプレートが自動的に選択されます。
-
[スケマティック ダイアグラム名] テキスト ボックスに「TestAttributes」と入力します。
-
[OK] をクリックします。
階層図 - コンパクト ツリー レイアウトがダイアグラム テンプレートのデフォルトとして設定されているため、ダイアグラムはこのレイアウトで表示されます。[スケマティック エディタ] ツールバーで、[レイアウト タスク] も [階層図 - コンパクト ツリー] に設定されます。
-
コンテンツ ウィンドウで、TestAttributes ダイアグラム レイヤの下にある [pug_PUG_gas_plants] エントリをダブルクリックします。
[レイヤ プロパティ] ウィンドウが開きます。
- [フィールド] タブをクリックします。
-
フィールド リストを一番下までスクロールして、新しく作成した属性を表示します。
これは、それらの属性のストレージ モードをフィールドとして指定したためです。
- [ラベル] タブをクリックします。
- [このレイヤのラベルを表示] チェックボックスがオンになっていない場合は、オンにします。
-
[ラベル フィールド] ドロップダウン リストから [SCH1E_pug_PUG_gas_plants.ElectricFormat] フィールドを選択します。
-
[OK] をクリックします。
「電力供給プラント: 1 - CAMACARI」というラベルが付いたガス プラントが表示されます。これは、3 つの異なる属性(電気プラント番号を取得する関連フィールド属性、電気プラント名を取得するクエリ属性、およびこの 2 つを組み合わせる既定属性)によって作成されました。
- ArcMap と ArcCatalog を閉じ、すべての保存ダイアログ ボックスで [いいえ] をクリックします。