HOW TO
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.
import arcpy from arcpy import env
workspace = env.workspace = r"<workspace_location>"
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))
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()
Unterstützung durch ArcGIS-Experten anfordern
Esri Support App herunterladen