Ключевые слова словаря определяют расширенное поведение правил атрибутов, например, появление пользовательских сообщений об ошибках в условных выражениях или выполнение редактирования объектов другого класса. При создании выражений ArcGIS Arcade для правил атрибутов тип возвращаемого словаря должен использовать одно из зарезервированных ключевых слов, перечисленных ниже. Чтобы выполнить несколько операций, расширьте словарь дополнительными ключевыми словами. Подробнее о работе с ключевыми словами словаря см. в разделе Примеры выражений скриптов атрибутивных правил.
Примечание:
При задании параметров ключевого слоя globalD или globalIDs убедитесь, что значение заключено в одинарные кавычки.
результат
Для объекта возвращается одно значение либо словарь. Вы можете использовать это ключевое слово только с правилами вычислений.
- При использовании ключевого слоя result для возврата одного значения вам нужно задать в правиле атрибутов целевое поле, чтобы обновить нужное поле.
- Вам необходимо возвратить result как словарь, чтобы обновить несколько полей объекта. При возврате result в виде словаря целевое поле в правиле атрибутов не является обязательным. Вы можете задать любое поле для обновления в словаре с помощью параметров ключевого поля в расположенной ниже таблице.
Если в правиле атрибутов задано целевое поле, а вы возвращаете result в виде словаря, помните о следующем:
- Если целевое поле находится в словаре, в нем появляется новое значение, заданное в словаре.
- Если целевое поле в словаре отсутствует, изменения целевого поля не будет.
Примечание:
Использование словаря в ключевом слове result поддерживается только в ArcGIS Pro 2.7 или ArcGIS Enterprise 10.9 и более поздних версиях.
Параметр ключевого слоя | Описание |
---|---|
attributes | Редактирование указанных полей. Значение – словарь пар имен полей и атрибутов. |
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
Возвращается пользовательское сообщение об ошибке, появляющееся в случае сбоя во время оценки. Используйте ключевое слово errorMessage при создании логических выражений в выражениях Arcade, чтобы появлялись заданные пользователем сообщения об ошибках. При возвращении errorMessage другое ключевое слово словаря не может использоваться. См. пример возврата пользовательского сообщения об ошибке.
return {
"errorMessage": "Error message text"
}
calculationRequired
Объекты помечаются как требующие оценки правилами пакетного вычисления. Когда используется это ключевое слово, соответствующие объекты помечаются как требующие оценки путем изменения их атрибута Статус оценки. Эти ключевые слова могут использоваться только с правилами вычислений, и при этом необходимо, чтобы опция Исключить из оценки приложения имела значение true. См. пример отмечания других объектов как требующих оценки.
Параметр ключевого слоя | Описание |
---|---|
className | Имя класса объектов или таблицы, которая будет изменена. Это обязательный параметр. |
objectID | globalID | Массив идентификаторов объектов или глобальных идентификаторов, которые будут изменены. Это обязательный параметр. |
return {
'calculationRequired': [{
'classname': 'featureclass_name',
'globalIDs': ['{8B421724-32D0-408A-A8EE-CCC2B064D52B}']
}]
}
validationRequired
Объекты помечаются как требующие оценки правилами проверки. Когда используется это ключевое слово, соответствующие объекты помечаются как требующие оценки путем изменения их атрибута Статус проверки. Это ключевое слово могут использоваться только с правилами вычислений, и при этом необходимо, чтобы опция Исключить из оценки приложения имела значение true. См. пример отмечания других объектов как требующих оценки.
Параметр ключевого слоя | Описание |
---|---|
className | Имя класса объектов или таблицы, которая будет изменена. Это обязательный параметр. |
objectID | globalID | Массив идентификаторов объектов или глобальных идентификаторов, которые будут изменены. Это обязательный параметр. |
return {
'validationRequired': [{
'classname': 'featureclass_name',
'globalIDs': ['{60905A3D-9783-435D-B4C9-AA4ADA59AD32}']
}]
}
edit
Вставляет, обновляет и удаляет объекты в указанных классах объектов. Это ключевое слово edit может использоваться только с правилами вычислений, и при этом необходимо, чтобы опция Исключить из оценки приложения имела значение true. См. пример редактирования другого класса объектов.
Для инженерной сети вы можете использовать ключевое слово edit для редактирования связи $feature с помощью ключевого слоя associationType. Для редактирования связи в инженерной сети задайте для className значение ^UN_Association. Значение ^UN_Association предоставляет вам доступ к таблице связей инженерной сети для редактирования связей между объектами при использовании параметров связанного ключевого слоя для adds и updates.
При выполнении правок связности с помощью ключевого слова редактирования правила инженерной сети не учитываются в ходе процесса оценки. Объекты сети будут проверены с помощью зажач топологии сети, таких как включение или проверка топологии сети.
Более подробно о связях инженерной сети
Параметр ключевого слоя | Описание |
---|---|
className | Имя класса объектов или таблицы, которая будет изменена. Это обязательный параметр. |
Тип вносимых изменений. Значение – массив словарей, детализирующих изменения для каждого типа редактирования. |
Примечание:
Не создавайте скрипт, выполняющий рекурсивное редактирование. Если для скрипта настроено редактирование, отслеживающее или оценивающее правило атрибутов, будет создан бесконечный цикл. Это приведет к некорректным результатам.
adds
Используйте это ключевое слово в словаре edit для вставки в указанный класс пространственных объектов или таблицу.
Параметр ключевого слоя | Описание |
---|---|
attributes | Редактирование указанных полей. Значение – словарь пар имен полей и атрибутов. |
geometry | Редактирование геометрии. Значение – Объект геометрии. |
associationType | Редактирует связь $feature в инженерной сети. К возможным значениям относятся:
Ниже приведены дополнительные возможные значения для ArcGIS Utility Networkверсии 4 и более поздних:
|
fromTerminal | Имя Терминала «От» для редактирования, когда соединяется значение associationType, junctionEdgeFrom или junctionEdgeTo. |
toTerminal | Имя Терминала «К» для редактирования, когда соединяется значение associationType, junctionEdgeFrom или junctionEdgeTo. |
isContentVisible | Определяет, будет ли содержимое видимым для соединения содержания. Значение – true или false. |
percentAlong | Процент вдоль линии или ребра, когда значение AssociationType находится в середине диапазона. Это значение представляет собой процент в диапазоне от 0 до 1. |
tag | Тег для объекта или записи, которые еще не созданы. Можно ссылаться на значение тега в других частях словаря edit, например, в ключевых словах fromGlobalID и toGlobalID при редактировании ^UN_Association. Значение является уникальной строкой. Примечание:Этот параметр поддерживается только в ArcGIS Pro 2.7 или ArcGIS Enterprise 10.9 и более поздних версий. |
Используйте следующие параметры ключевого слова для добавления связи, если для className задано значение ^UN_Association.
Параметр ключевого слоя | Описание |
---|---|
fromClass | Имя класса пространственных или непространственных объектов "От", участвующего в связи. Это обязательный параметр. |
fromGlobalID | Global ID пространственного или непространственного объекта "От". Это обязательный параметр. |
toClass | Имя класса пространственных или непространственных объектов "К", участвующего в связи. Это обязательный параметр. |
toGlobalID | Global ID пространственного или непространственного объекта. Это обязательный параметр. |
associationType | Тип связи между пространственными объектами в инженерной сети. Это обязательный параметр. К возможным значениям относятся:
Ниже приведены дополнительные возможные значения для ArcGIS Utility Networkверсии 4 и более поздних:
|
fromTerminal | Имя терминала «От» для соединения связности. |
toTerminal | Имя терминала «К» для соединения связности. |
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 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 | Значение идентификатора или глобального идентификатора объекта, который будет редактироваться. Это обязательный параметр. |
attributes | Редактирование указанных полей. Значение – словарь пар имен полей и атрибутов. |
geometry | Редактирование геометрии. Значение – Объект геометрии. |
associationType | Редактирует связь объекта в инженерной сети. К возможным значениям относятся:
Ниже приведены дополнительные возможные значения для ArcGIS Utility Networkверсии 4 и более поздних:
|
fromTerminal | Имя Терминала «От» для редактирования, когда соединяется значение associationType, junctionEdgeFrom или junctionEdgeTo. |
toTerminal | Имя Терминала «К» для редактирования, когда соединяется значение associationType, 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 | Значение идентификатора или глобального идентификатора объекта, который будет удален. Это обязательный параметр. |
return {
'edit': [{
'className': 'b_edit_dict',
'deletes': [{
'objectID': 22
}]
}]
}