10 votos

Puede Unirse ser detectado mediante programación ArcPy?

Tengo algo de código en Python que se inicia desde dentro de un proyecto de ArcMap. Cualquier combinación que pueda tener el usuario creado en el proyecto debe ser eliminado para que mi código a ejecutar. Por desgracia, el código que elimina una combinación... arcpy.RemoveJoin_management("capa1", "nivel 2")... también rompe algunas de las propiedades de la capa que son de suma importancia para mi aplicación (resaltado campos, campos de sólo lectura, etc).

Si se une a se quitan haciendo clic derecho en la capa en ArcMap y seleccionando "Eliminar Une" las propiedades de la capa se deja intacto.

Si puedo detectar que una unión que existe dentro de mi código, me limitaré a salir el código y mostrar un mensaje que el usuario debe quitar manualmente sus combinaciones antes de intentar ejecutar el código. Así que... Puede Unirse a un ser detectado mediante programación?

8voto

Daniel Broekman Puntos 1951

Lástima que no hay un hasJoin de la propiedad en el arcpy.Capa de la clase. Creo que se puede probar de una combinación mirando los nombres de campo, aunque. He aquí una simple prueba de concepto para los datos en una geodatabase de archivos:

import arcpy, arcpy.mapping as arc

def joinCheck(lyr):
  fList = arcpy.Describe(lyr).fields
  for f in fList:
    if f.name.find(lyr.datasetName) > -1:
      return True
  return False

arcpy.env.workspace = r'<path_to_your_gdb>'
mxd = arc.MapDocument(r'<path_to_your_mxd>')
lyrs = arc.ListLayers(mxd)
for lyr in lyrs:
  # ignore group layers
  if not lyr.isGroupLayer:
    hasJoin = joinCheck(lyr)
    if hasJoin:
      print '\nFound a join: %s.' % lyr.datasetName
    else:
      print '\nNo join found on %s.' % lyr.datasetName

1voto

auramo Puntos 161

Creo que usted encontrará que no hay ninguna prueba de balas manera de hacer esto con el GP de objetos, tendrás que utilizar ArcObjects y comtypes. Aquí un poco de la discusión de la ESRI foros sobre las dificultades en la verificación para que se une con la norma GP herramientas/objetos: http://forums.arcgis.com/threads/21472-Testing-whether-at-table-is-joined?p=70087

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X