辞書キーワードは、条件ステートメント内のカスタム エラー メッセージを返したり、別のフィーチャクラス内のフィーチャに対する編集を実行したりするような、属性ルール機能の高度な動作を公開します。 属性ルールの ArcGIS Arcade 式を作成する場合は、return dictionary タイプが、以下に示す予約済みキーワードのいずれかを使用する必要があります。 複数の操作を実行するには、さまざまなキーワードで辞書を拡張します。 これらの辞書キーワードを使用する方法の詳細については、「属性ルール スクリプト条件式の例」をご参照ください。
注意:
GlobalID または GlobalID のキーワードのパラメーターを定義する際は、必ず値を一重引用符で囲みます。
result
フィーチャに対応する 1 個の値または辞書を返します。 このキーワードは、計算ルールでのみ使用可能です。
result キーワードを使用して 1 個の値を返す場合は、属性ルール内のターゲット フィールドを定義して、正しいフィールドを更新する必要があります。 result を辞書として返して、フィーチャの複数のフィールドを更新できます。 result を辞書として返すと、属性のターゲット フィールドが省略可能となります。 以下の表のキーワード パラメーターを使用して、辞書内で更新するフィールドを指定できます。
ターゲット フィールドが属性ルールで定義されていて、result を辞書として返している場合は、以下のとおりとなります。
- ターゲット フィールドが辞書内に存在する場合、辞書で定義された値でターゲット フィールドが更新されます。
- ターゲット フィールドを辞書から除外されている場合、ターゲット フィールドは変更されません。
注意:
ある属性ルール内の result のキーワード パラメーターは、ArcGIS Pro 2.9 または ArcGIS Enterprise 10.9 以降でのみサポートされています。
キーワード パラメーター | 説明 |
---|---|
属性 | 指定のフィールドを編集します。 値は、フィールド名および属性ペアの辞書です。 |
ジオメトリ | ジオメトリの編集を編集します。 値は、ジオメトリ オブジェクトです。 |
return {
//result is a single value
'result': 200
}
return {
//result is a dictionary
"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 | (必須) 修正する ObjectID または GlobalID の配列。 値は ObjectID または GlobalID の配列です。 |
return {
'calculationRequired': [{
'classname': 'featureclass_name',
'globalIDs': ['{8B421724-32D0-408A-A8EE-CCC2B064D52B}']
}]
}
validationRequired
他のフィーチャを、整合チェック ルールの評価が必要であるとしてマークします。 このキーワードが使用されると、整合チェックの状態属性を修正することで、対応するフィーチャが要整合チェックとしてマークされます。 このキーワードは計算ルールでのみ使用可能であり、[アプリケーション評価から除外] オプションを true に設定する必要があります。 「他のフィーチャを要評価としてマーク付けする」方法の例をご参照ください。
キーワード パラメーター | 説明 |
---|---|
className | (必須) 修正するフィーチャクラスまたはテーブルの名前。 値はフィーチャクラス名です。 |
objectIDs | globalIDs | (必須) 修正する ObjectID または GlobalID の配列。 値は ObjectID または GlobalID の配列です。 |
return {
'validationRequired': [{
'classname': 'featureclass_name',
'globalIDs': ['{60905A3D-9783-435D-B4C9-AA4ADA59AD32}']
}]
}
編集
指定したフィーチャクラス内のフィーチャの挿入、更新、および削除を実行します。 edit キーワードは計算ルールでのみ使用可能であり、[アプリケーション評価から除外] オプションを true に設定する必要があります。 「別のフィーチャクラスの編集」方法の例をご参照ください。
ユーティリティ ネットワークについては、edit キーワードを使用すれば、associationType キーワードを使用して $feature の関連付けを編集できます。 ユーティリティ ネットワークの関連付けを編集する場合は、className 値を ^UN_Association に設定します。 ^UN_Association を指定すると、adds と updates の関連キーワード パラメーターの使用時に、フィーチャ間の関連付けを編集するためのユーティリティ ネットワークの関連付けのテーブルにアクセスできるようになります。
編集キーワードを使用して関連付けの編集を実行する場合、ユーティリティ ネットワーク ルールは評価プロセス中に考慮されません。 ネットワーク フィーチャは、ネットワーク トポロジの有効化や整合チェックなどのネットワーク トポロジ タスク中に整合チェックされます。
キーワード パラメーター | 説明 |
---|---|
className | (必須) 修正するフィーチャクラスまたはテーブルの名前。 値はフィーチャクラス名です。 |
編集のタイプ。 値は、編集タイプごとに編集内容を詳述する辞書の配列です。 |
注意:
再帰編集を実行するスクリプトを作成しないでください。 スクリプトが属性ルールを評価またはトリガーする編集を実行するように構成されている場合は、無限ループが生成されます。 これにより、意図しない結果が生じます。
adds
指定されたフィーチャクラスまたはテーブルへの挿入を実行するために edit 辞書内で使用するキーワード。
キーワード パラメーター | 説明 |
---|---|
属性 | 指定のフィールドを編集します。 値は、フィールド名および属性ペアの辞書です。 |
ジオメトリ | ジオメトリの編集を編集します。 値は、ジオメトリ オブジェクトです。 |
associationType | ユーティリティ ネットワークの $feature の関連付けを編集します。 出力される可能性のある値は次のとおりです。
次に、ユーティリティ ネットワーク バージョン 4 以降で使用できるその他の値を示します。
|
fromTerminal | associationType の値を接続したときに編集する From ターミナル、junctionEdgeFrom、または junctionEdgeTo 値はターミナル名です。 |
toTerminal | associationType の値を接続したときに編集する To ターミナル、junctionEdgeFrom、または junctionEdgeTo 値はターミナル名です。 |
isContentVisible | 格納の関連付けでコンテンツが表示されるかどうかを指定します。 値は、true または false です。 |
percentAlong | associationType が中間部の場合のラインまたはエッジに沿った割合。 値は、0 ~ 1 の範囲の割合です。 |
タグ | まだ作成されていないフィーチャまたはレコードのタグを設定します。 ^UN_Association の編集時に fromGlobalID キーワードまたは toGlobalID キーワードなどの edit 辞書の他の部分におけるタグ値を参照できます。 この値は、一意の文字列です。 注意:タグの使用は、ArcGIS Pro 2.9 または ArcGIS Enterprise 10.9 以降でのみサポートされています。 |
className が ^UN_Association に設定された場合に関連付けを追加するためのキーワード パラメーター。
キーワード パラメーター | 説明 |
---|---|
fromClass | (必須) 関連付けに含まれるフィーチャクラスまたはオブジェクト クラスの名前。 |
fromGlobalID | (必須) フィーチャまたはオブジェクトの GlobalID。 |
toClass | (必須) 関連付けに含まれるフィーチャクラスまたはオブジェクト クラスの名前。 |
toGlobalID | (必須) フィーチャまたはオブジェクトの GlobalID。 |
associationType | (必須) ユーティリティ ネットワークのフィーチャ間の関連付けのタイプ。 出力される可能性のある値は次のとおりです。
次に、ユーティリティ ネットワーク バージョン 4 以降で使用できるその他の値を示します。
|
fromTerminal | 接続性の関連付けの From ターミナル。 値はターミナル名です。 |
toTerminal | 接続性の関連付けの To ターミナル。 値はターミナル名です。 |
isContentVisible | 格納の関連付けでコンテンツが表示されるかどうかを指定します。 値は、true または false です。 |
percentAlong | associationType が中間部の場合のラインまたはエッジに沿った割合。 値は、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 and midspan association to the $feature
"percentAlong": 0.5,
"associationType": 'midspan'
}]
}]
}
//$feature is an edge object in the utility network
//The 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 create a attachment association between the new junction objects
"adds": [{
"fromClass": "StructureJunctionObject",
"fromGlobalId": "jo1.globalID",
"toClass": "StructureJunctionObject",
"toGlobalId": "jo2.globalID",
"associationType": "attachment"
}]
}]
}
updates
指定されたフィーチャクラスまたはテーブルへの更新を実行するために edit 辞書内で使用するキーワード。
キーワード パラメーター | 説明 |
---|---|
objectID | globalID | (必須) 編集するフィーチャの ObjectID または GlobalID の値。 値は ObjectID または GlobalID です。 |
attributes | 指定のフィールドを編集します。 値は、フィールド名および属性ペアの辞書です。 |
geometry | ジオメトリの編集を編集します。 値は、ジオメトリ オブジェクトです。 |
associationType | ユーティリティ ネットワークのフィーチャの関連付けを編集します。 出力される可能性のある値は次のとおりです。
次に、ユーティリティ ネットワーク バージョン 4 以降で使用できるその他の値を示します。
|
fromTerminal | associationType の値を接続したときに編集する From ターミナル、junctionEdgeFrom、または junctionEdgeTo 値はターミナル名です。 |
toTerminal | associationType の値を接続したときに編集する To ターミナル、junctionEdgeFrom、または junctionEdgeTo 値はターミナル名です。 |
isContentVisible | 格納の関連付けでコンテンツが表示されるかどうかを指定します。 値は、true または false です。 |
percentAlong | associationType が中間部の場合のラインまたはエッジに沿った割合。 値は、0 ~ 1 の範囲の割合です。 |
className が ^UN_Association に設定された場合に関連付けを更新するためのキーワード パラメーター。
キーワード パラメーター | 説明 |
---|---|
isContentVisible | 格納の関連付けでコンテンツが表示されるかどうかを指定します。 値は、true または false です。 |
percentAlong | associationType が中間部の場合のラインまたはエッジに沿った割合。 値は、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 | (必須) 編集するフィーチャの ObjectID または GlobalID の値。 値は ObjectID または GlobalID です。 |
return {
'edit': [{
'className': 'b_edit_dict',
'deletes': [{
'objectID': 22
}]
}]
}