Mi pregunta es similar a Añadir capa en la sesión actual usando ARCPY . Mi script funciona en la ventana de ArcMap python pero no como script en toolbox. Estoy ejecutando ArcGIS 10.0 SP4. El script se da a continuación, y el error dice que falla en la línea 3, "CreateObject no puede abrir el documento del mapa"
import arcpy
import arcpy.mapping as map
mxd = arcpy.mapping.MapDocument("CURRENT")
df = arcpy.mapping.ListDataFrames(mxd)[0]
updateLayer = arcpy.mapping.ListLayers(mxd, "SectionClip",df)[0]
arcpy.MakeFeatureLayer_management(updateLayer,"SectionInner2")
sourceLayer = arcpy.mapping.ListLayers(mxd,"SectionInner",df)[0]
newupdateLayer = arcpy.mapping.ListLayers(mxd, "SectionInner2",df)[0]
arcpy.ApplySymbologyFromLayer_management(newupdateLayer,sourceLayer)
newupdateLayer.showLabels = True
for lyr in map.ListLayers(mxd):
if lyr.name == "SectionInner2":
lyr.showLabels = True
for lblclass in lyr.labelClasses:
lblclass.expression = '"%s" & [SECTION] & "%s"' % ("<CLR red='0' green='0' blue='0'>""<FNT size='12'>""<BOL>", "</BOL>""</FNT>""</CLR>")
lblclass.showClassLabels = True
arcpy.RefreshActiveView()
mxd.save()
No puedo actualizar a ArcGIS 10.1 en breve, por lo que la opción de utilizar un complemento de python no está disponible.
4 votos
¿Tienes marcadas las opciones "Ejecutar siempre en primer plano" y "Ejecutar Python script en proceso"?
2 votos
Creo que la razón por la que @blah238 hace su pregunta está bien descrita en la ayuda en línea bajo el título Referenciar un documento cartográfico en disco o utilizar la palabra clave CURRENT dentro de ArcMap
0 votos
¿Te ayudó la sugerencia de @blah238? Si es así, háganoslo saber para que pueda ser transferida a una respuesta que pueda aceptar.
0 votos
Comprobado tanto "Ejecutar siempre en primer plano" como "Ejecutar Python script en proceso". Todavía no funciona. Por cierto, gracias PolyGeo para el enlace, me ayudó a entender lo que los controles eran para.