HOW TO

Unter Verwendung von ArcPy feststellen, ob eine Geodatabase eine Beziehungsklasse enthält

Last Published: November 26, 2020

Zusammenfassung

Beziehungsklassen können mit der ArcGIS Desktop-Lizenz "Standard" oder "Advanced" in einer Geodatabase erstellt werden. Mit Beziehungsklassen werden die Verknüpfungen zwischen Objekten in einer Feature-Class und einer Tabelle verwaltet. Da in einem Workspace mehrere Geodatabases vorhanden sein können, kann es mühsam sein, manuell zu überprüfen, ob in einer Geodatabase eine Beziehungsklasse vorhanden ist. In diesem Artikel wird eine alternative Methode beschrieben, mit der unter Verwendung von ArcPy für alle Geodatabases in einem Workspace festgestellt werden kann, ob eine Beziehungsklasse vorhanden ist.

Vorgehensweise

  1. Importieren Sie die erforderlichen Module.
import arcpy from arcpy import env
  1. Geben Sie den gewünschten Workspace an.
workspace = env.workspace = r"<workspace_location>"
  1. Erstellen Sie eine Funktion, um im angegebenen Workspace nach den Beziehungsklassen zu suchen.
def detectRelationship(): rc_list = [c.name for c in arcpy.Describe(workspace).children if c.datatype == "RelationshipClass"] rc_list # List the names, origin, and destination of the relationship class for rc in rc_list: rc_path = workspace + "\\" + rc des_rc = arcpy.Describe(rc_path) origin = des_rc.originClassNames destination = des_rc.destinationClassNames print ("Relationship Class: %s \n Origin: %s \n Desintation: %s" %(rc, origin, destination))
  1. Rufen Sie die Funktion auf, und geben Sie die Ergebnisse zurück, falls eine Beziehungsklasse vorhanden ist.
detectRelationship()

Der Code-Block und die Abbildung unten zeigen das vollständige Skript sowie das Ergebnis:

import arcpy from arcpy import env workspace = env.workspace = r"C:\Users\USER\Desktop\Test_case" def detectRelationship(): rc_list = [c.name for c in arcpy.Describe(workspace).children if c.datatype == "RelationshipClass"] rc_list for rc in rc_list: rc_path = workspace + "\\" + rc des_rc = arcpy.Describe(rc_path) origin = des_rc.originClassNames destination = des_rc.destinationClassNames print ("Relationship Class: %s \n Origin: %s \n Desintation: %s" %(rc, origin, destination)) detectRelationship()
Abbildung eines Beispielergebnisses

Artikel-ID: 000023985

Benachrichtigungen erhalten und Lösungen für neue oder häufige Probleme finden

Unser neuer KI-Chatbot stellt zusammengefasste Antworten und Videolösungen für Sie bereit.

Esri Support App herunterladen

Zugehörige Informationen

Weitere Informationen zu diesem Thema erkunden

Unterstützung durch ArcGIS-Experten anfordern

An den technischen Support wenden

Esri Support App herunterladen

Zu Download-Optionen wechseln