SearchRelatedRecords

Resumen

Recupera registros relacionados basados en la relación entre el origen y la tabla o la clase de entidad de destino definida en una clase de relación.

El objeto devuelve un iterador de tuplas. Cada tupla contiene dos elementos: el primero es una fila (tupla) de la tabla de origen y el segundo, una fila (tupla) de la tabla de destino.

Debate

La clase SearchRelatedRecords se puede iterar mediante un bucle for. Es posible que el orden en que se producen los registros no coincidan con los valores de ObjectID que se han trasladado al parámetro oids_to_search. El objeto SearchRelatedRecords también admiten instrucciones de with para facilitar la eliminación de bloqueos de datos.

Los campos de extracción que devuelve cada tabla se pueden controlar con los parámetros origin_fields y destination_fields. origin_fields o destination_fields se pueden omitir por separado, pero a al menos uno de ellos se debe proporcionar un argumento. Si no se proporciona el argumento de uno de estos parámetros, se debe facilitar un argumento al otro.

Solo se puede acceder a las propiedades de objeto Geometry de la clase de entidad de origen y destino si se proporciona el token SHAPE@ en la lista de campos respectiva. Sin embargo, al acceso a la geometría completa con el token SHAPE@ es una operación intensiva desde el punto de vista informático. Si solo se requiere información de geometría simple, como las coordenadas x,y de un punto, utilice tokens como SHAPE@XY, SHAPE@Z y SHAPE@M para un acceso más rápido y eficaz.

La dirección se lee hacia delante de forma predeterminada. Esto significa que los valores ObjectID proporcionados se aplican a la tabla de origen y se utilizan para encontrar registros relacionados en la tabla de destino. Para invertir la dirección, configure el parámetro backward en True. En la actualidad, los valores ObjectID proporcionados se aplican a la tabla de destino y se utilizan para encontrar registros relacionados en la tabla de origen.

Si no se encuentran registros relacionados para un valor ObjectID proporcionado, no se producirán resultados para ese registro.

Sintaxis

 SearchRelatedRecords (relationship_class, {oids_to_search}, {origin_fields}, {destination_fields}, {backward})
ParámetroExplicaciónTipo de datos
relationship_class

The path to the relationship class.

String
oids_to_search
[oids_to_search,...]

A list of ObjectID values that will be used to search for related records.

Use an asterisk (*) instead of a list of ObjectID values to search for all related records.

(El valor predeterminado es "*")

Integer
origin_fields
[origin_fields,...]

Una lista (o tupla) de nombres de campo. Para un único campo, puede utilizar una cadena en lugar de una lista de cadenas.

Use un asterisco (*) en lugar de una lista de campos para acceder a todos los campos de la tabla de entrada (se excluyen los campos BLOB). Sin embargo, para un rendimiento más rápido y un orden de campo fiable, se recomienda que la lista de campos se acote a solo aquellos que se necesitan realmente.

Es posible acceder a información adicional con tokens (como OID@) en lugar de nombres de campo:

If no argument is passed to origin_fields, you must pass an argument to destination_fields.

  • SHAPE@XYUna tupla de las coordenadas x,y del centroide de la entidad.
  • SHAPE@XYZUna tupla de las coordenadas x, y, z del centroide de la entidad.
  • SHAPE@TRUECENTROIDUna tupla de las coordenadas x,y del centroide de la entidad. Devuelve el mismo valor que SHAPE@XY.
  • SHAPE@XUn doble de la coordenada x de la entidad.
  • SHAPE@YUn doble de la coordenada y de la entidad.
  • SHAPE@ZUn doble de la coordenada z de la entidad.
  • SHAPE@MUn doble del valor m de la entidad.
  • SHAPE@JSONLa cadena de caracteres JSON de Esri que representa la geometría.
  • SHAPE@WKBRepresentación binaria conocida (WKB) para geometría OGC. Ofrece una representación portátil de un valor de geometría como una transmisión contigua de bytes.Los valores se devuelven como un objeto bytearray.
  • SHAPE@WKTRepresentación en texto conocida (WKT) para geometría OGC. Ofrece una representación portátil de un valor de geometría como cadena de caracteres.
  • SHAPE@Objeto de geometría para la entidad.
  • SHAPE@AREAUn doble del área de la entidad.
  • SHAPE@LENGTHUn doble de la longitud de la entidad.
  • CREATED@Un objeto datetime de cuándo se creó la entidad. Este campo es de solo lectura.
  • CREATOR@Una cadena del nombre de usuario que creó la entidad. Este campo es de solo lectura.
  • EDITED@Un objeto datetime de cuándo se editó la entidad por última vez. Este campo es de solo lectura.
  • EDITOR@Una cadena del nombre de usuario que editó la entidad por última vez. Este campo es de solo lectura.
  • GLOBALID@Una cadena de caracteres del identificador único universal de la entidad. Este campo es de solo lectura.
  • OID@El valor del campo Id. de objeto.
  • SUBTYPE@Un entero del código de subtipo.

(El valor predeterminado es None)

String
destination_fields
[destination_fields,...]

Una lista (o tupla) de nombres de campo. Para un único campo, puede utilizar una cadena en lugar de una lista de cadenas.

Use un asterisco (*) en lugar de una lista de campos para acceder a todos los campos de la tabla de entrada (se excluyen los campos BLOB). Sin embargo, para un rendimiento más rápido y un orden de campo fiable, se recomienda que la lista de campos se acote a solo aquellos que se necesitan realmente.

Es posible acceder a información adicional con tokens (como OID@) en lugar de nombres de campo:

If no argument is passed to destination_fields, you must pass an argument to origin_fields.

  • SHAPE@XYUna tupla de las coordenadas x,y del centroide de la entidad.
  • SHAPE@XYZUna tupla de las coordenadas x, y, z del centroide de la entidad.
  • SHAPE@TRUECENTROIDUna tupla de las coordenadas x,y del centroide de la entidad. Devuelve el mismo valor que SHAPE@XY.
  • SHAPE@XUn doble de la coordenada x de la entidad.
  • SHAPE@YUn doble de la coordenada y de la entidad.
  • SHAPE@ZUn doble de la coordenada z de la entidad.
  • SHAPE@MUn doble del valor m de la entidad.
  • SHAPE@JSONLa cadena de caracteres JSON de Esri que representa la geometría.
  • SHAPE@WKBRepresentación binaria conocida (WKB) para geometría OGC. Ofrece una representación portátil de un valor de geometría como una transmisión contigua de bytes.Los valores se devuelven como un objeto bytearray.
  • SHAPE@WKTRepresentación en texto conocida (WKT) para geometría OGC. Ofrece una representación portátil de un valor de geometría como cadena de caracteres.
  • SHAPE@Objeto de geometría para la entidad.
  • SHAPE@AREAUn doble del área de la entidad.
  • SHAPE@LENGTHUn doble de la longitud de la entidad.
  • CREATED@Un objeto datetime de cuándo se creó la entidad. Este campo es de solo lectura.
  • CREATOR@Una cadena del nombre de usuario que creó la entidad. Este campo es de solo lectura.
  • EDITED@Un objeto datetime de cuándo se editó la entidad por última vez. Este campo es de solo lectura.
  • EDITOR@Una cadena del nombre de usuario que editó la entidad por última vez. Este campo es de solo lectura.
  • GLOBALID@Una cadena de caracteres del identificador único universal de la entidad. Este campo es de solo lectura.
  • OID@El valor del campo Id. de objeto.
  • SUBTYPE@Un entero del código de subtipo.

(El valor predeterminado es None)

String
backward

The directionality of the related record search. Set to False to search the relationship from the origin table to the destination table. Set to True to search the relationship from the destination table to the origin table.

(El valor predeterminado es False)

Boolean

Descripción general del método

MétodoExplicación
reset ()

Resets the iteration back to the first row.

Métodos

reset ()

Muestra de código

Ejemplo 1 de SearchRelatedRecords

Use la clase SearchRelatedRecords para encontrar todos los edificios relacionados con un conjunto de parcelas.

import arcpy

relc = os.path.join(arcpy.env.workspace, "Parcel_Building_Rel")
oids = [2710, 1010]

with arcpy.da.SearchRelatedRecords(relc, oids, origin_fields="APN", destination_fields="BUILDING_NUMBER") as related_records:
    for record in related_records:
        print(record)
Ejemplo 2 de SearchRelatedRecords

Utilice la clase SearchRelatedRecords hacia atrás para encontrar parcelas relacionadas con un conjunto de edificios.

import arcpy

relc = os.path.join(arcpy.env.workspace, "Parcel_Building_Rel")
oids = [850, 921, 1018, 2301]

with arcpy.da.SearchRelatedRecords(relc, oids, origin_fields="APN", destination_fields="BUILDING_NUMBER", backward=True) as related_records:
    for record in related_records:
        print(record)
Ejemplo 3 de SearchRelatedRecords

Utilice la clase SearchRelatedRecords para recuperar los atributos mediante el uso de tokens. En este ejemplo también se muestra la omisión de uno de estos parámetros de campo, que puede resultar útil si solo se está interesado en los registros relacionados.

import arcpy

relc = os.path.join(arcpy.env.workspace, "Parcel_Building_Rel")
oids = [2710]

with arcpy.da.SearchRelatedRecords(relc, oids, destination_fields=["OID@", "SHAPE@AREA"]) as related_records:
    for record in related_records:
        print(record)
Ejemplo 4 de SearchRelatedRecords

Use la función Python sorted para ordenar los registros que devuelve SearchRelatedRecords. En este ejemplo también se muestra la omisión del parámetro oids_to_search, lo que hará que la clase SearchRelatedRecords devuelva todos los registros relacionados.

import arcpy

relc = os.path.join(arcpy.env.workspace, "Parcel_Building_Rel")

for record in sorted(arcpy.da.SearchRelatedRecords(relc, origin_fields="APN", destination_fields=["BUILDING_NUMBER", "POPULATION"])):
    print(record)