SearchRelatedRecords

Zusammenfassung

Ruft zugehörige Datensätze basierend auf der Beziehung zwischen Quell- und Ziel-Feature-Class bzw. der in einer Beziehungsklasse definierten Tabelle ab.

Mit dem Objekt wird ein Tupel-Iterator zurückgegeben. Jedes Tupel enthält zwei Elemente: Das erste Element ist eine Zeile (Tupel) aus der Quelltabelle, und das zweite Element ist eine Zeile (Tupel) aus der Zieltabelle.

Diskussion

Die Klasse SearchRelatedRecords kann mit einer for-Schleife durchlaufen werden. Die Reihenfolge der zurückgegebenen Datensätze stimmt möglicherweise nicht mit der Reihenfolge der ObjectID-Werte überein, die an den Parameter oids_to_search übergeben wurden. Das Objekt SearchRelatedRecords unterstützt auch with-Anweisungen zum Entfernen von Datensperren.

Welche Felder genau von jeder Tabelle zurückgegeben werden, lässt sich mit den Parametern origin_fields und destination_fields steuern. origin_fields oder destination_fields kann jeweils ausgelassen werden, für mindestens einen dieser Parameter muss jedoch ein Argument angegeben werden. Wenn für einen dieser Parameter kein Argument angegeben wird, muss für den anderen eines angegeben werden.

Auf die Eigenschaften des Objekts Geometry der Quell- und Ziel-Feature-Class kann durch Angabe des Token SHAPE@ in der jeweiligen Felderliste zugegriffen werden. Der Zugriff auf die vollständige Geometrie mit dem Token SHAPE@ ist jedoch ein rechenintensiver Vorgang. Wenn nur Informationen zu einer einfachen Geometrie benötigt werden, zum Beispiel die XY-Koordinaten eines Punktes, erhalten Sie mit den Token SHAPE@XY, SHAPE@Z und SHAPE@M schneller und effizienter Zugriff.

Die Beziehung wird standardmäßig in Vorwärtsrichtung gelesen. Das bedeutet, dass die angegebenen ObjectID-Werte auf die Quelltabelle angewendet werden und dazu dienen, zugehörige Datensätze in der Zieltabelle zu finden. Um die Richtung umzukehren, legen Sie für den Parameter backward den Wert True fest. Nun werden die angegebenen ObjectID-Werte auf die Zieltabelle angewendet und verwendet, um zugehörige Datensätze in der Quelltabelle zu finden.

Wenn für einen angegebenen ObjectID-Wert keine zugehörigen Datensätze gefunden werden, werden für diesen Datensatz keine Ergebnisse zurückgegeben.

Syntax

 SearchRelatedRecords (relationship_class, {oids_to_search}, {origin_fields}, {destination_fields}, {backward})
ParameterErläuterungDatentyp
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.

(Der Standardwert ist "*")

Integer
origin_fields
[origin_fields,...]

Eine Liste (oder ein Tupel) von Feldnamen. Für ein einzelnes Feld kann eine Zeichenfolge statt einer Zeichenfolgenliste verwendet werden.

Geben Sie anstelle einer Felderliste ein Sternchen (*) an, um auf alle Felder der Eingabetabelle zuzugreifen (BLOB-Felder werden ausgeschlossen). Um die Performance zu verbessern und eine zuverlässige Feldreihenfolge zu erzielen, wird jedoch empfohlen, die Liste der Felder lediglich auf die tatsächlich benötigten Felder zu beschränken.

Anstelle von Feldnamen kann auf zusätzliche Informationen auch über Token (z. B. OID@) zugegriffen werden:

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

  • SHAPE@XYEin Tupel von XY-Koordinaten für den Feature-Schwerpunkt.
  • SHAPE@XYZEin Tupel von XYZ-Koordinaten für den Feature-Schwerpunkt.
  • SHAPE@TRUECENTROIDEin Tupel von XY-Koordinaten für den Feature-Schwerpunkt. Dies gibt denselben Wert zurück wie SHAPE@XY.
  • SHAPE@XX-Koordinate des Features als Zahlenwert (Double).
  • SHAPE@YY-Koordinate des Features als Zahlenwert (Double).
  • SHAPE@ZZ-Koordinate des Features als Zahlenwert (Double).
  • SHAPE@MM-Wertes des Features als Zahlenwert (Double).
  • SHAPE@JSONDie Esri JSON-Zeichenfolge für die Geometrie.
  • SHAPE@WKBDas Well-known Binary (WKB)-Format für OGC-Geometrie. Es bietet eine übertragbare Darstellung eines Geometriewertes in Form eines zusammenhängenden Datenstroms.Werte werden als bytearray-Objekt zurückgegeben.
  • SHAPE@WKTDas Well-Known Text (WKT)-Format für OGC-Geometrie. Es bietet eine übertragbare Darstellung eines Geometriewertes in Form einer Textzeichenfolge.
  • SHAPE@Ein Geometrie-Objekt für das Feature.
  • SHAPE@AREAFläche des Features als Zahlenwert (Double).
  • SHAPE@LENGTHLänge des Features als Zahlenwert (Double).
  • CREATED@Ein datetime-Objekt für den Zeitpunkt der Erstellung des Features. Dieses Feld ist schreibgeschützt.
  • CREATOR@Eine Zeichenfolge für den Benutzernamen des Benutzers, der das Feature erstellt hat. Dieses Feld ist schreibgeschützt.
  • EDITED@Ein datetime-Objekt für den Zeitpunkt der letzten Bearbeitung des Features. Dieses Feld ist schreibgeschützt.
  • EDITOR@Eine Zeichenfolge für den Benutzernamen des Benutzers, der das Feature zuletzt bearbeitet hat. Dieses Feld ist schreibgeschützt.
  • GLOBALID@Eine Zeichenfolge für die UUID (Universally Unique Identifier) des Features. Dieses Feld ist schreibgeschützt.
  • OID@Der Wert des Objekt-ID-Feldes.
  • SUBTYPE@Der Subtype-Code als ganze Zahl.

(Der Standardwert ist None)

String
destination_fields
[destination_fields,...]

Eine Liste (oder ein Tupel) von Feldnamen. Für ein einzelnes Feld kann eine Zeichenfolge statt einer Zeichenfolgenliste verwendet werden.

Geben Sie anstelle einer Felderliste ein Sternchen (*) an, um auf alle Felder der Eingabetabelle zuzugreifen (BLOB-Felder werden ausgeschlossen). Um die Performance zu verbessern und eine zuverlässige Feldreihenfolge zu erzielen, wird jedoch empfohlen, die Liste der Felder lediglich auf die tatsächlich benötigten Felder zu beschränken.

Anstelle von Feldnamen kann auf zusätzliche Informationen auch über Token (z. B. OID@) zugegriffen werden:

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

  • SHAPE@XYEin Tupel von XY-Koordinaten für den Feature-Schwerpunkt.
  • SHAPE@XYZEin Tupel von XYZ-Koordinaten für den Feature-Schwerpunkt.
  • SHAPE@TRUECENTROIDEin Tupel von XY-Koordinaten für den Feature-Schwerpunkt. Dies gibt denselben Wert zurück wie SHAPE@XY.
  • SHAPE@XX-Koordinate des Features als Zahlenwert (Double).
  • SHAPE@YY-Koordinate des Features als Zahlenwert (Double).
  • SHAPE@ZZ-Koordinate des Features als Zahlenwert (Double).
  • SHAPE@MM-Wertes des Features als Zahlenwert (Double).
  • SHAPE@JSONDie Esri JSON-Zeichenfolge für die Geometrie.
  • SHAPE@WKBDas Well-known Binary (WKB)-Format für OGC-Geometrie. Es bietet eine übertragbare Darstellung eines Geometriewertes in Form eines zusammenhängenden Datenstroms.Werte werden als bytearray-Objekt zurückgegeben.
  • SHAPE@WKTDas Well-Known Text (WKT)-Format für OGC-Geometrie. Es bietet eine übertragbare Darstellung eines Geometriewertes in Form einer Textzeichenfolge.
  • SHAPE@Ein Geometrie-Objekt für das Feature.
  • SHAPE@AREAFläche des Features als Zahlenwert (Double).
  • SHAPE@LENGTHLänge des Features als Zahlenwert (Double).
  • CREATED@Ein datetime-Objekt für den Zeitpunkt der Erstellung des Features. Dieses Feld ist schreibgeschützt.
  • CREATOR@Eine Zeichenfolge für den Benutzernamen des Benutzers, der das Feature erstellt hat. Dieses Feld ist schreibgeschützt.
  • EDITED@Ein datetime-Objekt für den Zeitpunkt der letzten Bearbeitung des Features. Dieses Feld ist schreibgeschützt.
  • EDITOR@Eine Zeichenfolge für den Benutzernamen des Benutzers, der das Feature zuletzt bearbeitet hat. Dieses Feld ist schreibgeschützt.
  • GLOBALID@Eine Zeichenfolge für die UUID (Universally Unique Identifier) des Features. Dieses Feld ist schreibgeschützt.
  • OID@Der Wert des Objekt-ID-Feldes.
  • SUBTYPE@Der Subtype-Code als ganze Zahl.

(Der Standardwert ist 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.

(Der Standardwert ist False)

Boolean

Methodenübersicht

MethodeErläuterung
reset ()

Resets the iteration back to the first row.

Methoden

reset ()

Codebeispiel

SearchRelatedRecords – Beispiel 1

Verwenden Sie die Klasse SearchRelatedRecords zum Suchen nach allen Gebäuden, die mit verschiedenen Flurstücken in Beziehung stehen.

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)
SearchRelatedRecords – Beispiel 2

Verwenden Sie die Klasse SearchRelatedRecords in Rückwärtsrichtung zum Suchen nach Flurstücken, die mit verschiedenen Gebäuden in Beziehung stehen.

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)
SearchRelatedRecords – Beispiel 3

Verwenden Sie die Klasse SearchRelatedRecords, um Attribute unter Verwendung von Token abzurufen. In diesem Beispiel wird auch das Auslassen eines der Feldparameter gezeigt. Dies kann sinnvoll sein, wenn Sie nur an den zugehörigen Datensätzen interessiert sind.

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)
SearchRelatedRecords – Beispiel 4

Verwenden Sie die Python-Funktion sorted, um die von SearchRelatedRecords zurückgegebenen Datensätze zu sortieren. In diesem Beispiel wird auch das Auslassen des Parameters oids_to_search gezeigt. Dadurch werden von der Klasse SearchRelatedRecords alle zugehörigen Datensätze zurückgegeben.

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)