Skip to main content

属性ルールの辞書キーワード

辞書キーワードは、条件ステートメント内のカスタム エラー メッセージを返したり、別のフィーチャクラス内のフィーチャに対する編集を実行したりするような、属性ルール機能の高度な動作を公開します。 属性ルールの ArcGIS Arcade 式を作成する場合は、return dictionary タイプが、以下に示す予約済みキーワードのいずれかを使用する必要があります。 複数の操作を実行するには、さまざまなキーワードで辞書を拡張します。 これらの辞書キーワードを使用する方法の詳細については、「属性ルール スクリプト条件式の例」をご参照ください。

注意:

グローバル ID のキーワードのパラメーターを定義する際は、必ず値を一重引用符で囲みます。

result

フィーチャに対応する 1 個の値または辞書を返します。 このキーワードは、計算ルールでのみ使用可能です。

  • result キーワードを使用して 1 個の値を返す場合は、属性ルール内のターゲット フィールドを定義して、正しいフィールドを更新する必要があります。

  • result を辞書として返して、フィーチャの複数のフィールドを更新できます。 result を辞書として返すと、属性のターゲット フィールドが省略可能となります。 以下の表のキーワード パラメーターを使用して、辞書内で更新するフィールドを指定できます。

ターゲット フィールドが属性ルールで定義されていて、result を辞書として返している場合は、次の点に注意してください:

  • ターゲット フィールドが辞書内に存在する場合、辞書で定義された値でターゲット フィールドが更新されます。

  • ターゲット フィールドを辞書から除外されている場合、ターゲット フィールドは変更されません。

注意:

result キーワードでの辞書の使用は、ArcGIS Pro 2.7 または ArcGIS Enterprise 10.9 以降でのみサポートされています。

キーワード パラメーター

説明

属性

指定のフィールドを編集します。 値は、フィールド名および属性ペアの辞書です。

geometry

ジオメトリーの編集を編集します。 値は、ジオメトリー オブジェクトです。

return {
 //result is a single value
 //set the attribute rule target field to 200 for $feature
 'result': 200
}
return {
 //result is a dictionary
 //set 'field1', 'field2', and the geometry for $feature
 //ArcGIS Pro 2.7 or ArcGIS Enterprise 10.9 and later
 "result": {
     "attributes": {
         "field1": 'field1', //updates field1 in the $feature
         "field2": 11 //updates field2 in the $feature
     },
     "geometry": Rotate($feature) //updates geometry in $feature
 }
}

errorMessage

評価中に発生した失敗についてユーザーが定義したエラー メッセージが返されます。 Arcade 式で論理ステートメントを作成して、カスタム エラー メッセージを返す場合は、errorMessage キーワードを使用します。 errorMessage を返すときには、他の辞書キーワードは使用できません。 「カスタム エラー メッセージを返す」方法の例をご参照ください。

return {
 "errorMessage": "Error message text"
}

calculationRequired

フィーチャが、バッチ計算ルールの評価が必要であるとしてマークされます。 このキーワードが使用されると、検証状態属性を修正することで、対応するフィーチャが要計算としてマーク付けされます。 このキーワードは計算ルールでのみ使用可能であり、アプリケーション評価から除外 オプションを true に設定する必要があります。 「他のフィーチャを要評価としてマーク付けする」方法の例をご参照ください。

キーワード パラメーター

説明

className

変更されるフィーチャクラス名またはテーブル名。 このパラメーターは必須です。

objectIDs | globalIDs

変更されるオブジェクト ID またはグローバル ID の配列。 このパラメーターは必須です。

return {
 'calculationRequired': [{
     'classname': 'featureclass_name',
     'globalIDs': ['{8B421724-32D0-408A-A8EE-CCC2B064D52B}']
 }]
}

validationRequired

フィーチャが、検証ルールの評価が必要であるとしてマークされます。 このキーワードが使用されると、検証状態属性を修正することで、対応するフィーチャが要検証としてマークされます。 このキーワードは計算ルールでのみ使用可能であり、アプリケーション評価から除外 オプションを true に設定する必要があります。 「他のフィーチャを要評価としてマーク付けする」方法の例をご参照ください。

キーワード パラメーター

説明

className

変更されるフィーチャクラス名またはテーブル名。 このパラメーターは必須です。

objectIDs | globalIDs

変更されるオブジェクト ID またはグローバル ID の配列。 このパラメーターは必須です。

return {
 'validationRequired': [{
     'classname': 'featureclass_name',
     'globalIDs': ['{60905A3D-9783-435D-B4C9-AA4ADA59AD32}']
 }]
}

edit

指定されたフィーチャクラスのフィーチャを挿入、更新、および削除します。 edit キーワードは計算ルールでのみ使用可能であり、アプリケーション評価から除外 オプションを true に設定する必要があります。 「別のフィーチャクラスの編集」方法の例をご参照ください。

ユーティリティー ネットワークについては、edit キーワードを使用すれば、associationType キーワードを使用して $feature の関連付けを編集できます。 ユーティリティー ネットワークの関連付けを編集する場合は、className 値を ^UN_Association に設定します。 ^UN_Association 値を指定すると、addsupdates の関連キーワード パラメーターの使用時に、フィーチャ間の関連付けを編集するためのユーティリティー ネットワークの関連付けのテーブルにアクセスできるようになります。

編集キーワードを使用して関連付けの編集を実行する場合、ユーティリティー ネットワーク ルールは評価プロセス中に考慮されません。 ネットワーク フィーチャは、ネットワーク トポロジーの有効化や検証などのネットワーク トポロジー タスク中に検証されます。

ユーティリティー ネットワークの関連付けの詳細

キーワード パラメーター

説明

className

変更されるフィーチャクラス名またはテーブル名。 このパラメーターは必須です。

adds | updates | deletes

実行される編集タイプ。 値は、編集タイプごとに編集内容を詳述する辞書の配列です。

注意:

再帰編集を実行するスクリプトを作成しないでください。 スクリプトが属性ルールを評価またはトリガーする編集を実行するように構成されている場合は、無限ループが生成されます。 これにより、意図しない結果が生じます。

adds

edit 辞書内でこのキーワードを使用すると、指定されたフィーチャクラスまたはテーブルへの挿入が実行されます。

キーワード パラメーター

説明

属性

指定のフィールドを編集します。 値は、フィールド名および属性ペアの辞書です。

geometry

ジオメトリーの編集を編集します。 値は、ジオメトリー オブジェクトです。

associationType

ユーティリティー ネットワーク$feature関連付けを編集します。

出力される可能性のある値は、次のとおりです。

  • connected

  • container

  • content

  • structure

  • attached

次に、ArcGIS Utility Network バージョン 4 以降で使用できるその他の値を示します:

  • junctionEdgeFrom

  • junctionEdgeTo

  • midspan

fromTerminal

associationType の値を接続したときに編集される From ターミナルの名前、junctionEdgeFrom、または junctionEdgeTo。

toTerminal

associationType の値を接続したときに編集する To ターミナルの名前、junctionEdgeFrom、または junctionEdgeTo。

isContentVisible

格納の関連付けでコンテンツが表示されるかどうかを指定します。 値は、true または false です。

percentAlong

associationType の値が midspan のときの、ラインまたはエッジに沿った割合。 値は、0 ~ 1 の範囲の割合です。

tag

まだ作成されていないフィーチャまたはレコードのタグ。 ^UN_Association 値の編集時に fromGlobalID キーワードや toGlobalID キーワードなどの edit 辞書の他の部分におけるタグ値を参照できます。 この値は、一意の文字列です。

注意:

このパラメーターは、ArcGIS Pro 2.7 または ArcGIS Enterprise 10.9 以降でのみサポートされています。

className^UN_Association に設定された場合に関連付けを追加するには、以下のキーワード パラメーターを使用します。

キーワード パラメーター

説明

fromClass

関連付けに含まれる始点フィーチャクラスまたは始点オブジェクト クラスの名前。 このパラメーターは必須です。

fromGlobalID

始点フィーチャまたは始点オブジェクトのグローバル ID。 このパラメーターは必須です。

toClass

関連付けに含まれる終点フィーチャクラスまたは終点オブジェクト クラスの名前。 このパラメーターは必須です。

toGlobalID

終点フィーチャまたは終点オブジェクトのグローバル ID。 このパラメーターは必須です。

associationType

ユーティリティー ネットワークのフィーチャ間の関連付けのタイプ。 このパラメーターは必須です。

出力される可能性のある値は、次のとおりです。

  • connectivity

  • containment

  • attachment

次に、ArcGIS Utility Network バージョン 4 以降で使用できるその他の値を示します:

  • junctionEdgeFrom

  • junctionEdgeTo

  • midspan

fromTerminal

接続性の関連付けの From ターミナルの名前。

toTerminal

接続性の関連付けの To ターミナルの名前。

isContentVisible

格納の関連付けでコンテンツが表示されるかどうかを指定します。 値は、true または false です。

percentAlong

associationType の値が midspan のときの、ラインまたはエッジに沿った割合。 値は、0 ~ 1 の範囲の割合です。

return {
 'edit': [{
     'className': 'b_edit_dict',
     'adds': [{
         'attributes': {
             'field_name': 11
         },
         'geometry': Geometry({
             'x': -76.8375008,
             'y': 39.4949383,
             'spatialReference': {
                 'wkid': 4326
             }
         })
     }]
 }]
}
"edit": [{
 "className": "ElectricDistributionJunctionObject",
 "adds": [{ //adds a new Electric Distribution Junction Object and creates a midspan association to the $feature
     "percentAlong": 0.5,
     "associationType": 'midspan'
 }]
}]
}
//$feature is an edge object in the utility network
//Arcade will add two junction objects and associate them to the $feature
//The junction object with asset group 5 and asset type 1 has a terminal configuration of High/Low
return {
 "result": $feature.assetid,
 "edit": [{
     "className": "ElectricDistributionJunctionObject",
     "adds": [{
         "attributes": { //Adds a junction object
             "assetgroup": 5,
             "assettype": 1
         }, //create a connectivity association between the $feature and junction object
         "toTerminal": "High", //to the high side terminal of the junction object
         "associationType": "junctionEdgeFrom" //on the from side of the edge object
     }, {
         "attributes": { //Adds a junction object
             "assetgroup": 5,
             "assettype": 1
         }, //create a connectivity association between the $feature and junction object
         "toTerminal": "High", //to the high side terminal of the junction object
         "associationType": "junctionEdgeTo" //on the to side of the edge object
     }]
 }]
}
return { //creates two new Structure Junction Objects and creates an association between them using a tag
 "edit": [{
     //create two junction objects and identify them uniquely with a tag
     "className": "StructureJunctionObject",
     "adds": [{
         "tag": "jo1", //unique identifier for new feature in the Structure Junction Object class
         "attributes": {
             "AssetGroup": 1,
             "AssetType": 2
         }
     }, {
         "tag": "jo2", //unique identifier for new feature in the Structure Junction Object class
         "attributes": {
             "AssetGroup": 1,
             "AssetType": 2
         }
     }]
 }, {
     "className": "^UN_Association", //edit the association table and create an attachment association between the new junction objects
     "adds": [{
         "fromClass": "StructureJunctionObject",
         "fromGlobalId": "jo1.globalID",
         "toClass": "StructureJunctionObject",
         "toGlobalId": "jo2.globalID",
         "associationType": "attachment"
     }]
 }]
}

updates

edit 辞書内でこのキーワードを使用すると、指定されたフィーチャクラスまたはテーブルへの更新が実行されます。

キーワード パラメーター

説明

objectID | globalID

編集されるフィーチャのオブジェクト ID またはグローバル ID。 このパラメーターは必須です。

属性

指定のフィールドを編集します。 値は、フィールド名および属性ペアの辞書です。

geometry

ジオメトリーの編集を編集します。 値は、ジオメトリー オブジェクトです。

associationType

ユーティリティー ネットワークのフィーチャの関連付けを編集します。

出力される可能性のある値は、次のとおりです。

  • connected

  • container

  • content

  • structure

  • attached

次に、ArcGIS Utility Network バージョン 4 以降で使用できるその他の値を示します:

  • junctionEdgeFrom

  • junctionEdgeTo

  • midspan

fromTerminal

associationType の値を接続したときに編集される From ターミナルの名前、junctionEdgeFrom、または junctionEdgeTo。

toTerminal

associationType の値を接続したときに編集する To ターミナルの名前、junctionEdgeFrom、または junctionEdgeTo。

isContentVisible

格納の関連付けでコンテンツが表示されるかどうかを指定します。 値は、true または false です。

percentAlong

associationType の値が midspan のときの、ラインまたはエッジに沿った割合。 値は、0 ~ 1 の範囲の割合です。

className^UN_Association に設定された場合に関連付けを更新するには、以下のキーワード パラメーターを使用します。

キーワード パラメーター

説明

isContentVisible

格納の関連付けでコンテンツが表示されるかどうかを指定します。 値は、true または false です。

percentAlong

associationType の値が midspan のときの、ラインまたはエッジに沿った割合。 値は、0 ~ 1 の範囲の割合です。

return {
 'edit': [{
     'className': 'b_edit_dict',
     'updates': [{
         'globalID': '{7EBAB596-E9DB-40D8-9756-B2EBED2500B7}',
         'attributes': {
             'field_name': 22
         }
     }]
 }]
}
return {
 "result": $feature.assetid,
 "edit": [{
     "className": "electricdistributionassembly",
     "updates": [{
         "objectID": feature_objectid,
         "associationType": 'container'
     }]
 }]
}

deletes

edit 辞書内でこのキーワードを使用すると、指定されたフィーチャクラスまたはテーブルでの削除が実行されます。

キーワード パラメーター

説明

objectID | globalID

削除されるフィーチャのオブジェクト ID またはグローバル ID。 このパラメーターは必須です。

return {
 'edit': [{
     'className': 'b_edit_dict',
       'deletes': [{
         'objectID': 22
     }]
 }]
}