Instrução
As classes de relacionamento podem ser criadas em um geodatabase com a licença Standard ou Advanced do ArcGIS Desktop. As classes de relacionamento gerenciam as associações entre objetos em uma classe de feição e uma tabela. Como pode haver vários geodatabases em uma área de trabalho, verificar manualmente se uma classe de relacionamento existe em um geodatabase pode ser entediante. Este artigo fornece um método alternativo para determinar se há uma classe de relacionamento em todos os geodatabases dentro de uma área de trabalho usando 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 # 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()
O seguinte bloco de código e imagem mostram o script completo e o 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()
Obtenha ajuda de especialistas do ArcGIS
Baixe o Aplicativo de Suporte da Esri