Instrução

Determinar se um geodatabase contém uma classe de relacionamento usando ArcPy

Last Published: November 26, 2020

Resumo

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.

Procedimento

  1. Importe os módulos necessários.
import arcpy from arcpy import env
  1. Especifique a área de trabalho desejada.
workspace = env.workspace = r"<workspace_location>"
  1. Crie uma função para localizar as classes de relacionamento na área de trabalho especificada.
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. Solicite a função e retorne os resultados se existir uma classe de relacionamento.
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()
Imagem de um resultado de amostra

ID do Artigo: 000023985

Receba notificações e encontre soluções para problemas novos ou comuns

Obtenha respostas resumidas e soluções de vídeo do nosso novo chatbot de IA.

Baixe o Aplicativo de Suporte da Esri

Informações Relacionadas

Descubra mais sobre este tema

Obtenha ajuda de especialistas do ArcGIS

Entre em contato com Suporte Técnico

Baixe o Aplicativo de Suporte da Esri

Ir para as opções de download