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

Proporciona una devolución de un único valor o un diccionario para la entidad. 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 un result como diccionario para actualizar varios campos de la entidad. Al devolver un 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 un result como diccionario:

  • 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.
Precaución:

Los parámetros de palabra clave para result en una regla de atributo solo se admiten con ArcGIS Pro 3.1 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
    '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

Especifica 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

Marca otras entidades 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

(obligatorio) El nombre de la tabla o clase de entidad que se va a modificar. El valor es el nombre de la clase de entidad.

objectIDs | globalIDs

(obligatorio) Una matriz de varios ObjectID o GlobalID que se van a modificar. El valor es una matriz de varios ObjectID o GlobalID.

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

validationRequired

Marca otras entidades 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

(obligatorio) El nombre de la tabla o clase de entidad que se va a modificar. El valor es el nombre de la clase de entidad.

objectIDs | globalIDs

(obligatorio) Una matriz de varios ObjectID o GlobalID que se van a modificar. El valor es una matriz de varios ObjectID o GlobalID.

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

editar

Inserta, actualiza y elimina entidades de las 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. ^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

(obligatorio) El nombre de la tabla o clase de entidad que se va a modificar. El valor es el nombre de la clase de entidad.

adds | updates | deletes

El tipo de edición que se va a realizar. 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

Palabra clave a utilizar en el diccionario 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:

  • connected
  • container
  • contenido
  • structure
  • attached

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

  • junctionEdgeFrom
  • junctionEdgeTo
  • midspan

fromTerminal

El terminal de origen a editar cuando el valor associationType está conectado, junctionEdgeFrom o junctionEdgeTo. El valor es el nombre del terminal.

toTerminal

El terminal de destino a editar cuando el valor associationType está conectado, junctionEdgeFrom o junctionEdgeTo. El valor es el nombre del terminal.

isContentVisible

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

percentAlong

El porcentaje a lo largo de una línea o eje cuando associationType es un punto intermedio. El valor es un porcentaje entre 0 y 1.

etiqueta

Establece 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 ^UN_Association. El valor es una cadena de caracteres que es única.

Nota:

El uso de la etiqueta solo se admite con ArcGIS Pro 3.1 o ArcGIS Enterprise 10.9 y versiones posteriores.

Parámetros de palabra clave para agregar una asociación cuando className se establece en ^UN_Association.

Parámetro de palabra claveDescripción

fromClass

(obligatorio) El nombre de la clase de entidad u objeto que participa en la asociación.

fromGlobalID

(obligatorio) El Id. global de la entidad u objeto.

toClass

(obligatorio) El nombre de la clase de entidad u objeto que participa en la asociación.

toGlobalID

(obligatorio) El Id. global de la entidad u objeto.

associationType

(obligatorio) El tipo de asociación entre las entidades de una red de servicios. Entre los posibles valores se encuentran los siguientes:

  • conectividad
  • contención
  • adjunto

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

  • junctionEdgeFrom
  • junctionEdgeTo
  • midspan

fromTerminal

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

toTerminal

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

isContentVisible

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

percentAlong

El porcentaje a lo largo de una línea o eje cuando associationType es un punto intermedio. 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 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

Palabra clave a utilizar en el diccionario edit para realizar actualizaciones en una tabla o clase de entidad específica.

Parámetro de palabra claveDescripción

objectID | globalID

(obligatorio) El valor de ObjectID o GlobalID de una entidad para editarlo. El valor es un ObjectID o GlobalID.

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:

  • connected
  • container
  • contenido
  • structure
  • attached

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

  • junctionEdgeFrom
  • junctionEdgeTo
  • midspan

fromTerminal

El terminal de origen a editar cuando el valor associationType está conectado, junctionEdgeFrom o junctionEdgeTo. El valor es el nombre del terminal.

toTerminal

El terminal de destino a editar cuando el valor associationType está conectado, junctionEdgeFrom o junctionEdgeTo. El valor es el nombre del terminal.

isContentVisible

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

percentAlong

El porcentaje a lo largo de una línea o eje cuando associationType es un punto intermedio. El valor es un porcentaje entre 0 y 1.

Parámetros de palabra clave para actualizar una asociación cuando className se establece en ^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 a lo largo de una línea o eje cuando associationType es un punto intermedio. 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

Palabra clave a utilizar en el diccionario edit para realizar eliminaciones en una tabla o clase de entidad.

Parámetro de palabra claveDescripción

objectID | globalID

(obligatorio) El valor de ObjectID o GlobalID de una entidad para editarlo. El valor es un ObjectID o GlobalID.

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