Palabras clave de diccionario de reglas de atributos

Las palabras clave de diccionario exponen comportamientos avanzados de las funciones de las reglas de atributos, por ejemplo, devoluciones de mensajes de error personalizados en declaraciones condicionales o ediciones en entidades de otra clase de entidad. Al crear expresiones de ArcGIS Arcade para reglas de atributos, el tipo de diccionario de retorno debe utilizar una de las palabras clave reservadas que aparecen a continuación. Para realizar varias operaciones, amplíe el diccionario con palabras clave distintas. Para obtener más información sobre cómo utilizar estas palabras clave de diccionario, consulte Ejemplos de expresiones de script de reglas de atributos.

Nota:

Al definir los parámetros de palabras clave de uno o varios GlobalID, asegúrese de que el valor se encuentre entre comillas simples.

result

Se devuelve para la entidad un único valor o un diccionario. Solo puede utilizar esta palabra clave con reglas de cálculo.

  • Al utilizar la palabra clave result para devolver un solo valor, debe definir un campo de destino en la regla de atributo para actualizar el campo correcto.
  • Puede devolver result como diccionario para actualizar varios campos de la entidad. Al devolver result como diccionario, el campo de destino de la regla de atributo es opcional. Puede especificar cualquier campo para actualizarlo en el diccionario utilizando los parámetros de palabra clave de la siguiente tabla.

Cuando el campo de destino se define en la regla de atributo y devuelve result como diccionario, tenga en cuenta lo siguiente:

  • Si el campo de destino está en el diccionario, el campo de destino se actualiza con el valor definido en el diccionario.
  • Si el campo de destino se omite del diccionario, no se realiza ningún cambio en el campo de destino.
Nota:

El uso de un diccionario en la palabra clave result solo se admite con ArcGIS Pro 2.7 o ArcGIS Enterprise 10.9 y versiones posteriores.

Parámetro de palabra claveDescripción

atributos

Edita los campos especificados. El valor es un diccionario de pares de nombre de campo y atributos.

geometría

Edita la geometría. El valor es un Objeto de geometría.

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

Se devuelve un mensaje de error definido por el usuario para un fallo que se produce durante la evaluación. Utilice la palabra clave errorMessage al crear sentencias lógicas en expresiones de Arcade para devolver mensajes de error personalizados. Al devolver errorMessage, no se puede utilizar ninguna otra palabra clave de diccionario. Vea un ejemplo de cómo devolver un mensaje de error personalizado.

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

calculationRequired

Las entidades se marcan para indicar que requieren evaluación de reglas de cálculo por lotes. Cuando se utiliza esta palabra clave, la entidad o entidades correspondientes se marcan para indicar que requieren cálculo al modificar el atributo Estado de validación. Esta palabra clave solamente se puede utilizar con reglas de cálculo y la opción Excluir de la evaluación de la aplicación debe estar establecida en true. Vea un ejemplo de cómo marcar otras entidades para indicar que requieren evaluación.

Parámetro de palabra claveDescripción

className

El nombre de la clase de entidad o la tabla que va a modificarse. Se requiere este parámetro.

objectIDs | globalIDs

Una matriz de Id. de objeto e Id. globales que va a modificarse. Se requiere este parámetro.

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

validationRequired

Las entidades se marcan para indicar que requieren la evaluación de reglas de validación. Cuando se utiliza esta palabra clave, se marcan las entidades correspondientes para indicar que requieren validación al modificar el atributo Estado de validación. Esta palabra clave solamente se puede utilizar con reglas de cálculo y la opción Excluir de la evaluación de la aplicación debe estar establecida en true. Vea un ejemplo de cómo marcar otras entidades para indicar que requieren evaluación.

Parámetro de palabra claveDescripción

className

El nombre de la clase de entidad o la tabla que va a modificarse. Se requiere este parámetro.

objectIDs | globalIDs

Una matriz de Id. de objeto e Id. globales que va a modificarse. Se requiere este parámetro.

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

editar

Insertar, actualizar y eliminar entidades en clases de entidad especificadas. La palabra clave edit solamente se puede utilizar con reglas de cálculo y la opción Excluir de la evaluación de la aplicación debe estar establecida en true. Vea un ejemplo de cómo editar otra clase de entidad.

Para una red de servicios, puede usar la palabra clave edit para editar la asociación de $feature con la palabra clave associationType. Para editar cualquier asociación de la red de servicios, defina el valor className como ^UN_Association. El valor ^UN_Association proporciona acceso a la tabla de asociaciones de red de servicios para editar cualquier asociación entre entidades al utilizar los parámetros de palabra clave asociados para adds y updates.

Al realizar ediciones de asociación con la palabra clave edit, no se tienen en cuenta las reglas de red de servicios durante el proceso de evaluación. Estas entidades de res se validarán durante las tareas de topología de red, como habilitar o validar una topología de red.

Más información sobre las asociaciones de red de servicios

Parámetro de palabra claveDescripción

className

El nombre de la clase de entidad o la tabla que va a modificarse. Se requiere este parámetro.

adds | updates | deletes

El tipo de edición que se va a llevar a cabo. El valor es una matriz de diccionarios donde se detallan las ediciones de cada tipo de edición.

Nota:

No cree scripts que realicen ediciones recursivas. Si el script está configurado para realizar una edición que desencadena o evalúa la regla de atributos, se crea un bucle infinito. Esto causa resultados no previstos.

adds

Use esta palabra clave en el diccionario de edit para realizar inserciones en una tabla o clase de entidad específica.

Parámetro de palabra claveDescripción

atributos

Edita los campos especificados. El valor es un diccionario de pares de nombre de campo y atributos.

geometría

Edita la geometría. El valor es un Objeto de geometría.

associationType

Edita la asociación de $feature en una red de servicios.

Entre los posibles valores se encuentran los siguientes:

  • conectada
  • container
  • contenido
  • structure
  • attached

Los siguientes valores son posibles valores adicionales para ArcGIS Utility Networkversión 4 y posteriores:

  • junctionEdgeFrom
  • junctionEdgeTo
  • midspan

fromTerminal

El nombre del terminal de origen que se editará cuando el valor associationType sea conectado, junctionEdgeFrom o junctionEdgeTo.

toTerminal

El nombre del terminal de destino que se editará cuando el valor associationType sea conectado, junctionEdgeFrom o junctionEdgeTo.

isContentVisible

Especifica si el contenido es visible para una asociación de contención. El valor es true o false.

percentAlong

El porcentaje de una línea o eje cuando el valor de associationType sea punto intermedio (midspan). El valor es un porcentaje entre 0 y 1.

etiqueta

Una etiqueta para una entidad o registro que aún no se ha creado. Puede hacer referencia al valor de etiqueta en otras partes del diccionario edit, como las palabras clave fromGlobalID o toGlobalID al editar el valor ^UN_Association. El valor es una cadena de caracteres única.

Nota:

Este parámetro solo se admite en ArcGIS Pro 2.7 o ArcGIS Enterprise 10.9 y versiones posteriores.

Use los siguientes parámetros de palabra clave para agregar una asociación cuando className tenga el valor ^UN_Association.

Parámetro de palabra claveDescripción

fromClass

El nombre de la clase de entidad de origen o la clase de objeto que participa en la asociación. Se requiere este parámetro.

fromGlobalID

El Id. global de la entidad u objeto de origen. Se requiere este parámetro.

toClass

El nombre de la clase de entidad u objeto de destino que participa en la asociación. Se requiere este parámetro.

toGlobalID

El Id. global de la entidad u objeto de destino. Se requiere este parámetro.

associationType

El tipo de asociación entre las entidades de una red de servicios. Se requiere este parámetro.

Entre los posibles valores se encuentran los siguientes:

  • conectividad
  • contención
  • adjunto

Los siguientes valores son posibles valores adicionales para ArcGIS Utility Networkversión 4 y posteriores:

  • junctionEdgeFrom
  • junctionEdgeTo
  • midspan

fromTerminal

El nombre del terminal de origen de una asociación de conectividad.

toTerminal

El nombre del terminal de destino de una asociación de conectividad.

isContentVisible

Especifica si el contenido es visible para una asociación de contención. El valor es true o false.

percentAlong

El porcentaje de una línea o eje cuando el valor de associationType sea punto intermedio (midspan). El valor es un porcentaje entre 0 y 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"
        }]
    }]
}

actualizaciones

Use esta palabra clave en el diccionario de edit para realizar actualizaciones en una tabla o clase de entidad específica.

Parámetro de palabra claveDescripción

objectID | globalID

El valor de Id. de objeto o Id. global de la entidad que va a editarse. Se requiere este parámetro.

atributos

Edita los campos especificados. El valor es un diccionario de pares de nombre de campo y atributos.

geometría

Edita la geometría. El valor es un Objeto de geometría.

associationType

Edita la asociación de la entidad en una red de servicios.

Entre los posibles valores se encuentran los siguientes:

  • conectada
  • container
  • contenido
  • structure
  • attached

Los siguientes valores son posibles valores adicionales para ArcGIS Utility Networkversión 4 y posteriores de la red de servicios:

  • junctionEdgeFrom
  • junctionEdgeTo
  • midspan

fromTerminal

El nombre del terminal de origen que se editará cuando el valor associationType sea conectado, junctionEdgeFrom o junctionEdgeTo.

toTerminal

El nombre del terminal de destino que se editará cuando el valor associationType sea conectado, junctionEdgeFrom o junctionEdgeTo.

isContentVisible

Especifica si el contenido es visible para una asociación de contención. El valor es true o false.

percentAlong

El porcentaje de una línea o eje cuando el valor de associationType sea punto intermedio (midspan). El valor es un porcentaje entre 0 y 1.

Use los siguientes parámetros de palabra clave para actualizar una asociación cuando className tenga el valor ^UN_Association.

Parámetro de palabra claveDescripción

isContentVisible

Especifica si el contenido es visible para una asociación de contención. El valor es true o false.

percentAlong

El porcentaje de una línea o eje cuando el valor de associationType sea punto intermedio (midspan). El valor es un porcentaje entre 0 y 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

Use esta palabra clave en el diccionario de edit para realizar eliminaciones en una tabla o clase de entidad.

Parámetro de palabra claveDescripción

objectID | globalID

El valor de Id. de objeto o Id. global de la entidad que va a eliminarse. Se requiere este parámetro.

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