Probablemente como para envolver este código en Python agregar-en el que usted puede poner en un botón en la interfaz de usuario de ArcMap.
No hay ninguna manera de saber el uso de arcpy
si una capa tiene alguna de las combinaciones, sin embargo, esto será visible si usted explorar sus campos. Después de unirse a está establecido, cada campo se antepone con el nombre de la capa en el formulario layer_name.field_name
. Si hay un punto (.
) en el campo nombre y, a continuación, la capa tiene la combinación.
for lyr in arcpy.mapping.ListLayers(arcpy.mapping.MapDocument('current')):
if len([f.name for f in arcpy.ListFields(lyr)][0].split('.')) > 1:
print lyr
Teóricamente, incluso el acceso a la OID
debería ser suficiente (si tienes muchos niveles para pasar, no podría tomar tiempo extra listado de todos los campos). Así que, simplemente limitar el tipo de campo;
for lyr in arcpy.mapping.ListLayers(arcpy.mapping.MapDocument('current')):
if len([f.name for f in arcpy.ListFields(lyr, field_type='OID')][0].split('.')) > 1:
print lyr
Para obtener el nombre de la tabla combinada (la que ves debajo de la Une Y Relaciona ficha de diálogo Propiedades de Capa de la ventana), sería necesario para iterar a través de los campos de cada capa que se une y encontrar el único conjunto de datos de nombres en los nombres de campos.
for lyr in arcpy.mapping.ListLayers(arcpy.mapping.MapDocument('current')):
if len([f.name for f in arcpy.ListFields(lyr, field_type='OID')][0].split('.')) > 1:
print lyr
print set([f.name.split('.')[0] for f in arcpy.ListFields(lyr)])