CÓMO
Las clases de relación se pueden crear en una geodatabase con la licencia Standard o Advanced de ArcGIS Desktop. Las clases de relación administran las asociaciones entre los objetos de una clase de entidad y una tabla. Dado que puede haber varias geodatabases dentro de un espacio de trabajo, comprobar manualmente si existe una clase de relación en una geodatabase puede ser tedioso. Este artículo proporciona un método alternativo para determinar si existe una clase de relación en todas las geodatabases dentro de un espacio de trabajo mediante ArcPy.
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 # Se enumeran los nombres, el origen y destino de la clase de relación 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()
El siguiente bloque de código e imagen muestra el script completo y el resultado:
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()
Obtener ayuda de expertos en ArcGIS
Descargar la aplicación de soporte de Esri