SearchRelatedRecords

Synthèse

Récupère les enregistrements associés en fonction de la relation entre les tables ou classes d’entités d’origine et de destination définies dans une classe de relations.

L’objet renvoie un itérateur de tuples. Chaque tuple contient deux éléments : le premier est une ligne (tuple) de la table d’origine et le deuxième, une ligne (tuple) de la table de destination.

Discussion

Une boucle for peut être utilisée pour itérer la classe SearchRelatedRecords. L’ordre suivant lequel les enregistrements sont renvoyés peut ne pas correspondre à celui des valeurs ObjectID transmises au paramètre oids_to_search. L’objet SearchRelatedRecords prend également en charge les instructions with pour faciliter la suppression des verrous de données.

Il est possible de contrôler les champs exacts renvoyés par chaque table, avec les paramètres origin_fields et destination_fields. Il est possible d’omettre origin_fields ou destination_fields de manière individuelle, mais un argument doit être fourni pour au moins l’un de ces paramètres. Si aucun argument n’est fourni pour l’un de ces paramètres, un argument doit être spécifié pour l’autre.

Il est possible d’accéder aux propriétés d’objet Geometry des classes d’entités d’origine et de destination en spécifiant le jeton SHAPE@ dans la liste de champs correspondante. Toutefois, l’accès à l’ensemble de la géométrie avec le jeton SHAPE@ sollicite un grand nombre de ressources. Si seules des informations de géométrie simples sont requises, telles que les coordonnées x, y d’un point, utilisez des jetons tels que SHAPE@XY, SHAPE@Z et SHAPE@M pour un accès plus rapide et plus efficace.

Par défaut, la relation est lue vers l’avant. Cela signifie que les valeurs ObjectID fournies s’appliquent à la table d’origine et qu’elles sont utilisées pour rechercher les enregistrements associés dans la table de destination. Pour inverser le sens, définissez le paramètre backward sur True. À présent, les valeurs ObjectID fournies s’appliquent à la table de destination et sont utilisées pour rechercher les enregistrements associés dans la table d’origine.

Si aucun enregistrement associé n’est détecté pour une valeur ObjectID fournie, aucun résultat n’est renvoyé pour cet enregistrement.

Syntaxe

 SearchRelatedRecords (relationship_class, {oids_to_search}, {origin_fields}, {destination_fields}, {backward})
ParamètreExplicationType de données
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.

(La valeur par défaut est "*")

Integer
origin_fields
[origin_fields,...]

Liste (ou tuple) de noms de champs. Pour un champ unique, vous pouvez utiliser une chaîne de caractères au lieu d’une liste de chaînes.

Utilisez un astérisque (*) au lieu d’une liste de champs pour accéder à tous les champs de la table en entrée (les champs BLOB sont exclus). Toutefois, pour obtenir des performances plus rapides et un ordre des champs fiable, il est recommandé de limiter la liste des champs à ceux qui sont réellement nécessaires.

Il est possible d’accéder à des informations supplémentaires en utilisant des jetons (tels que OID@) à la place des noms de champs :

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

  • SHAPE@XYTuple des coordonnées x,y du centroïde de l’entité.
  • SHAPE@XYZTuple des coordonnées x,y,z du centroïde de l’entité.
  • SHAPE@TRUECENTROIDTuple des coordonnées x,y du centroïde de l’entité. La valeur renvoyée est la même que celle renvoyée par SHAPE@XY.
  • SHAPE@XDouble de la coordonnée x de l’entité.
  • SHAPE@YDouble de la coordonnée y de l’entité.
  • SHAPE@ZDouble de la coordonnée z de l’entité.
  • SHAPE@MDouble de la valeur m de l’entité.
  • SHAPE@JSONChaîne JSON Esri représentant la géométrie.
  • SHAPE@WKBReprésentation binaire connue (WKB) de la géométrie de l’OGC. Cette représentation constitue une représentation portable d’une valeur de géométrie sous la forme d’un flux contigu d’octets.Les valeurs sont renvoyées en tant qu’objet bytearray.
  • SHAPE@WKTReprésentation textuelle connue (WKT) de la géométrie de l’OGC. Cette représentation constitue une représentation portable d’une valeur de géométrie sous la forme d’une chaîne de texte.
  • SHAPE@Objet géométrie de l’entité.
  • SHAPE@AREADouble de la surface de l’entité.
  • SHAPE@LENGTHDouble de la longueur de l’entité.
  • CREATED@Objet datetime correspondant à la date et à l’heure de création de l’entité. Ce champ est en lecture seule.
  • CREATOR@Chaîne du nom de l’utilisateur ayant créé l’entité. Ce champ est en lecture seule.
  • EDITED@Objet datetime correspondant à la date et à l’heure de la dernière modification de l’entité. Ce champ est en lecture seule.
  • EDITOR@Chaîne du nom du dernier utilisateur ayant modifié l’entité. Ce champ est en lecture seule.
  • GLOBALID@Chaîne de l’identifiant unique universel de l’entité. Ce champ est en lecture seule.
  • OID@Valeur du champ ID d’objet.
  • SUBTYPE@Entier du code de sous-type.

(La valeur par défaut est None)

String
destination_fields
[destination_fields,...]

Liste (ou tuple) de noms de champs. Pour un champ unique, vous pouvez utiliser une chaîne de caractères au lieu d’une liste de chaînes.

Utilisez un astérisque (*) au lieu d’une liste de champs pour accéder à tous les champs de la table en entrée (les champs BLOB sont exclus). Toutefois, pour obtenir des performances plus rapides et un ordre des champs fiable, il est recommandé de limiter la liste des champs à ceux qui sont réellement nécessaires.

Il est possible d’accéder à des informations supplémentaires en utilisant des jetons (tels que OID@) à la place des noms de champs :

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

  • SHAPE@XYTuple des coordonnées x,y du centroïde de l’entité.
  • SHAPE@XYZTuple des coordonnées x,y,z du centroïde de l’entité.
  • SHAPE@TRUECENTROIDTuple des coordonnées x,y du centroïde de l’entité. La valeur renvoyée est la même que celle renvoyée par SHAPE@XY.
  • SHAPE@XDouble de la coordonnée x de l’entité.
  • SHAPE@YDouble de la coordonnée y de l’entité.
  • SHAPE@ZDouble de la coordonnée z de l’entité.
  • SHAPE@MDouble de la valeur m de l’entité.
  • SHAPE@JSONChaîne JSON Esri représentant la géométrie.
  • SHAPE@WKBReprésentation binaire connue (WKB) de la géométrie de l’OGC. Cette représentation constitue une représentation portable d’une valeur de géométrie sous la forme d’un flux contigu d’octets.Les valeurs sont renvoyées en tant qu’objet bytearray.
  • SHAPE@WKTReprésentation textuelle connue (WKT) de la géométrie de l’OGC. Cette représentation constitue une représentation portable d’une valeur de géométrie sous la forme d’une chaîne de texte.
  • SHAPE@Objet géométrie de l’entité.
  • SHAPE@AREADouble de la surface de l’entité.
  • SHAPE@LENGTHDouble de la longueur de l’entité.
  • CREATED@Objet datetime correspondant à la date et à l’heure de création de l’entité. Ce champ est en lecture seule.
  • CREATOR@Chaîne du nom de l’utilisateur ayant créé l’entité. Ce champ est en lecture seule.
  • EDITED@Objet datetime correspondant à la date et à l’heure de la dernière modification de l’entité. Ce champ est en lecture seule.
  • EDITOR@Chaîne du nom du dernier utilisateur ayant modifié l’entité. Ce champ est en lecture seule.
  • GLOBALID@Chaîne de l’identifiant unique universel de l’entité. Ce champ est en lecture seule.
  • OID@Valeur du champ ID d’objet.
  • SUBTYPE@Entier du code de sous-type.

(La valeur par défaut est 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.

(La valeur par défaut est False)

Boolean

Vue d’ensemble des méthodes

MéthodeExplication
reset ()

Resets the iteration back to the first row.

Méthodes

reset ()

Exemple de code

Exemple 1 d’utilisation de la fonction SearchRelatedRecords

Utilisez la classe SearchRelatedRecords pour rechercher tous les bâtiments associés à un ensemble de parcelles.

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)
Exemple 2 d’utilisation de la fonction SearchRelatedRecords

Utilisez la classe SearchRelatedRecords vers l’arrière pour rechercher les parcelles associées à un ensemble de bâtiments.

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)
Exemple 3 d’utilisation de la fonction SearchRelatedRecords

Utilisez la classe SearchRelatedRecords pour récupérer les attributs à l’aide de jetons. Cet exemple illustre également l’omission de l’un des paramètres de champ. Cela peut s’avérer utile si vous ne vous intéressez qu’aux enregistrements associés.

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)
Exemple 4 d’utilisation de la fonction SearchRelatedRecords

Utilisez la fonction Python sorted pour trier les enregistrements renvoyés par SearchRelatedRecords. Cet exemple illustre également l’omission du paramètre oids_to_search, qui permet à la classe SearchRelatedRecords de renvoyer tous les enregistrements associés.

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)