CÓMO

Determinar si una geodatabase contiene una clase de relación mediante ArcPy

Last Published: November 26, 2020

Resumen

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.

Procedimiento

  1. Importe los módulos necesarios.
import arcpy from arcpy import env
  1. Especifique el espacio de trabajo deseado.
workspace = env.workspace = r"<workspace_location>"
  1. Cree una función para buscar las clases de relación en el espacio de trabajo especificado.
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))
  1. Invoque la función y devuelva los resultados si existe una clase de relación.
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()
Imagen de un resultado de muestra

Id. de artículo: 000023985

Recibir notificaciones y encontrar soluciones a problemas nuevos o comunes

Obtenga respuestas resumidas y soluciones de vídeo de nuestro nuevo chatbot de IA.

Descargar la aplicación de soporte de Esri

Información relacionada

Descubrir más sobre este tema

Obtener ayuda de expertos en ArcGIS

Contactar con el soporte técnico

Descargar la aplicación de soporte de Esri

Ir a opciones de descarga