Más

¿Cómo copiar la capa y agregarla al mismo mxd y cambiar el nombre de la capa usando ArcPy y ArcMap 10.2?

¿Cómo copiar la capa y agregarla al mismo mxd y cambiar el nombre de la capa usando ArcPy y ArcMap 10.2?


Estoy tratando de copiar una capa en un mxd y agregar esa capa a la parte inferior del TOC usando Python, pero no he encontrado una manera de guardar el mxd programáticamente sin hacer una copia. Tampoco he encontrado cómo cambiar el nombre de la capa copiada. Aquí está mi código: se ejecuta sin errores, pero la capa copiada no se agrega al mxd cuando lo abro.

import arcpy import arcpy.mapping mxd = arcpy.mapping.MapDocument (r "D: /arcgisserver/directories/my_mxd.mxd") df = arcpy.mapping.ListDataFrames (mxd, "Layers") [0] print "df:" + df.name addLayer = arcpy.mapping.ListLayers (mxd, "", df) [0] print "layer?:" + addLayer.name arcpy.mapping.AddLayer (df, addLayer, "BOTTOM") # Actualizar arcpy .RefreshActiveView () arcpy.RefreshTOC () del mxd, df, addLayer

Después de agregar la capa al mxd en memoria, debe guardar el mxd usando:

mxd.save ()

o

mxd.saveACopy (r "D: /arcgisserver/directories/my_mxd2.mxd")

para cambiar el nombre de la capa, simplemente cambie la propiedad del nombre de la capa:

addLayer.name = "NewLayerName"

Actualización: para cambiar el nombre de la capa recién agregada, primero debe hacer una referencia a la capa:

allLayers = arcpy.mapping.ListLayers (mxd, "", df) copiedLayer = allLayers [len (allLayers) -1] // porque se agrega al final de la tabla de contenido copiedLayer.name = "NewLayerName"