Ключевые слова словаря для правил атрибутов

Ключевые слова словаря определяют расширенное поведение правил атрибутов, например, появление пользовательских сообщений об ошибках в условных выражениях или выполнение редактирования объектов другого класса. При создании выражений ArcGIS Arcade для правил атрибутов тип возвращаемого словаря должен использовать одно из зарезервированных ключевых слов, перечисленных ниже. Чтобы выполнить несколько операций, расширьте словарь дополнительными ключевыми словами. Подробнее о работе с ключевыми словами словаря см. в разделе Примеры выражений скриптов атрибутивных правил.

Примечание:

При задании параметров ключевого слоя globalD или globalIDs убедитесь, что значение заключено в одинарные кавычки.

результат

Обеспечивает возвращение для объекта одного значения либо словаря. Вы можете использовать это ключевое слово только с правилами вычислений.

При использовании ключевого слоя result для возврата одного значения вам нужно задать в правиле атрибутов целевое поле, чтобы обновить нужное поле. Вам необходимо возвратить result как словарь, чтобы обновить несколько полей объекта. При возврате result в виде словаря целевое поле в правиле атрибутов не является обязательным. Вы можете задать любое поле для обновления в словаре с помощью параметров ключевого поля в расположенной ниже таблице.

Если в правиле атрибутов задано целевое поле, а вы возвращаете result в виде словаря:

  • Если целевое поле находится в словаре, в нем появляется новое значение, заданное в словаре.
  • Если целевое поле в словаре отсутствует, изменения целевого поля не будет.
Внимание:

Параметры ключевого слова для result в правиле атрибутов поддерживаются только в ArcGIS Pro 3.0 2.7 или 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

Задает пользовательское сообщение об ошибке, появляющееся в случае сбоя во время оценки. Используйте ключевое слово errorMessage при создании логических выражений в выражениях Arcade, чтобы появлялись заданные пользователем сообщения об ошибках. При возвращении errorMessage другое ключевое слово словаря не может использоваться. См. пример возврата пользовательского сообщения об ошибке.

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

calculationRequired

Помечает другие объекты как требующие оценки правилами пакетного вычисления. Когда используется это ключевое слово, соответствующие объекты помечаются как требующие оценки путем изменения их атрибута Статус оценки. Эти ключевые слова могут использоваться только с правилами вычислений, и при этом необходимо, чтобы опция Исключить из оценки приложения имела значение true. См. пример отмечания других объектов как требующих оценки.

Параметр ключевого слояОписание

className

(обязательно) Имя класса объектов или таблицы, которые изменяются. Значение – имя класса объектов.

objectID | globalID

(обязательно) Массив изменяемых ObjectId или GlobalID. Значение – массив ObjectID или GlobalID.

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

validationRequired

Помечает другие объекты как требующие оценки правилами проверки. Когда используется это ключевое слово, соответствующие объекты помечаются как требующие оценки путем изменения их атрибута Статус проверки. Это ключевое слово могут использоваться только с правилами вычислений, и при этом необходимо, чтобы опция Исключить из оценки приложения имела значение true. См. пример отмечания других объектов как требующих оценки.

Параметр ключевого слояОписание

className

(обязательно) Имя класса объектов или таблицы, которые изменяются. Значение – имя класса объектов.

objectID | globalID

(обязательно) Массив изменяемых ObjectId или GlobalID. Значение – массив 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 | updates | deletes

Тип редактирования. Значение – массив словарей, детализирующих изменения для каждого типа редактирования.

Примечание:

Не создавайте скрипт, выполняющий рекурсивное редактирование. Если для скрипта настроено редактирование, отслеживающее или оценивающее правило атрибутов, будет создан бесконечный цикл. Это приведет к некорректным результатам.

adds

Ключевое слово, используемое в словаре edit для вставки в указанный класс пространственных объектов или таблицу.

Параметр ключевого слояОписание

attributes

Редактирование указанных полей. Значение – словарь пар имен полей и атрибутов.

geometry

Редактирование геометрии. Значение – Объект геометрии.

associationType

Редактирует связь $feature в инженерной сети. К возможным значениям относятся:

  • connected
  • container
  • content
  • structure
  • attached

Ниже приведены дополнительные возможные значения для инженерной сети версии 4 и более поздних:

  • junctionEdgeFrom
  • junctionEdgeTo
  • midspan

fromTerminal

Значение Терминала «От» для редактирования, когда соединяется значение associationType, junctionEdgeFrom или junctionEdgeTo. Значение – имя терминала.

toTerminal

Значение Терминала «К» для редактирования, когда соединяется значение associationType, junctionEdgeFrom или junctionEdgeTo. Значение – имя терминала.

isContentVisible

Определяет, будет ли содержимое видимым для соединения содержания. Значение – true или false.

percentAlong

Процент вдоль линии или ребра при значении associationType, равном midspan. Это значение представляет собой процент в диапазоне от 0 до 1.

tag

Задает тег для объекта или записи, которые еще не созданы. Можно ссылаться на значение тега в других частях словаря edit, например, в ключевых словах fromGlobalID и toGlobalID при редактировании ^UN_Association. Значение - строка, которая является уникальной.

Примечание:

Использование тега поддерживается только в ArcGIS Pro 3.0 или ArcGIS Enterprise 10.9 и выше.

Параметры ключевого слова для добавления связи, если для className задано значение ^UN_Association.

Параметр ключевого слояОписание

fromClass

(обязательный) Имя класса пространственных или непространственных объектов, участвующего в связи.

fromGlobalID

(обязательный) GlobalID пространственного или непространственного объекта.

toClass

(обязательный) Имя класса пространственных или непространственных объектов, участвующего в связи.

toGlobalID

(обязательный) GlobalID пространственного или непространственного объекта.

associationType

(обязательный) Тип связи между пространственными объектами в инженерной сети. К возможным значениям относятся:

  • connectivity
  • containment
  • attachment

Ниже приведены дополнительные возможные значения для инженерной сети версии 4 и более поздних:

  • junctionEdgeFrom
  • junctionEdgeTo
  • midspan

fromTerminal

Терминал «От» для соединения связности. Значение – имя терминала.

toTerminal

Терминал «К» для соединения связности. Значение – имя терминала.

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 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

Редактирует связь объекта в инженерной сети. К возможным значениям относятся:

  • connected
  • container
  • content
  • structure
  • attached

Ниже приведены дополнительные возможные значения для инженерной сети версии 4 и более поздних:

  • junctionEdgeFrom
  • junctionEdgeTo
  • midspan

fromTerminal

Значение Терминала «От» для редактирования, когда соединяется значение associationType, junctionEdgeFrom или junctionEdgeTo. Значение – имя терминала.

toTerminal

Значение Терминала «К» для редактирования, когда соединяется значение associationType, 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

(обязательно)Значение ObjectID или GlobalID редактируемого объекта. Значение – ObjectID или GlobalID.

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