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

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

Примечание:

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

result

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

  • При использовании ключевого слоя 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 | updates | deletes

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

Примечание:

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

adds

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

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

attributes

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

geometry

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

associationType

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

К возможным значениям относятся:

  • connected
  • container
  • content
  • structure
  • attached

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

  • junctionEdgeFrom
  • junctionEdgeTo
  • midspan

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

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

К возможным значениям относятся:

  • connectivity
  • containment
  • attachment

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

  • junctionEdgeFrom
  • junctionEdgeTo
  • midspan

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

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

К возможным значениям относятся:

  • connected
  • container
  • content
  • structure
  • attached

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

  • junctionEdgeFrom
  • junctionEdgeTo
  • midspan

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