# -*- coding: cp1252 -*- import arcview import arcpy, os arcpy.env.overwriteOutput = True #Setting up... arcpy.env.transferDomains = True arcpy.env.workspace = r"C:\GIS\ArcGIS\aliastest" #Getting parameters inFC = arcpy.GetParameterAsText(0) outshp = arcpy.GetParameterAsText(1) wp = arcpy.GetParameterAsText(2) #Converting arcpy.FeatureClassToFeatureClass_conversion(inFC, wp, outshp) #Saving original FC to layer arcpy.MakeFeatureLayer_management(inFC, "inFCLyr") arcpy.SaveToLayerFile_management("inFCLyr", "H_Orig04") #Saving converted shape to layer arcpy.MakeFeatureLayer_management(os.path.join(wp, outshp), "outShpvLyr") arcpy.SaveToLayerFile_management("outShpvLyr", "H_shp04.lyr") #Preparing to update and replace srcLayer = arcpy.mapping.Layer(r"inFCLyr") upLayer = arcpy.mapping.Layer(r"outShpvLyr") mxd = arcpy.mapping.MapDocument("CURRENT") df = arcpy.mapping.ListDataFrames(mxd, "*")[0] arcpy.mapping.AddLayer(df, srcLayer, "BOTTOM") arcpy.RefreshTOC() arcpy.RefreshActiveView() arcpy.mapping.UpdateLayer(df, upLayer, srcLayer, False)
File "c:\program files\arcgis\desktop10.1\arcpy\arcpy\utils.py", line 181, in fn_ return fn(*args, **kw) File "c:\program files\arcgis\desktop10.1\arcpy\arcpy\mapping.py", line 1876, in UpdateLayer tc.ReplaceLayer(tl, rl) ValueError: DataFrameObject: Unexpected error
Solved! Go to Solution.
# -*- coding: cp1252 -*- import arcview import arcpy, os #Getting parameters inFC = arcpy.GetParameterAsText(0) wp = arcpy.GetParameterAsText(1) outshp = arcpy.GetParameterAsText(2) #Setting up... arcpy.env.overwriteOutput = True arcpy.env.transferDomains = True arcpy.env.workspace = wp outshpN = outshp + ".shp" outlyr = outshp outlyrN = outlyr + ".lyr" #Converting arcpy.FeatureClassToFeatureClass_conversion(inFC, wp, outshpN) #Saving original FC to layer arcpy.MakeFeatureLayer_management(inFC, "inFCLyr") arcpy.SaveToLayerFile_management("inFCLyr", "origlyr") #Saving converted shape to layer arcpy.MakeFeatureLayer_management(os.path.join(wp, outshpN), "outShpvLyr") arcpy.SaveToLayerFile_management("outShpvLyr", "shplyr.lyr") #Preparing to update and replace srcLayer = arcpy.mapping.Layer(r"inFCLyr") upLayer = arcpy.mapping.Layer(r"outShpvLyr") mxd = arcpy.mapping.MapDocument("CURRENT") df = arcpy.mapping.ListDataFrames(mxd, "*")[0] arcpy.mapping.AddLayer(df, upLayer, "BOTTOM") arcpy.RefreshTOC() arcpy.RefreshActiveView() upLayerDF = arcpy.mapping.ListLayers(mxd, "outShpvLyr", df)[0] #Updating layer arcpy.mapping.UpdateLayer(df, upLayerDF, srcLayer, False) #Replacing datasource lyr = arcpy.mapping.ListLayers(mxd, "inFCLyr", df) [0] lyr.replaceDataSource(wp, "SHAPEFILE_WORKSPACE", outshp) lyr.name = outlyr lyr.description = " " #Saving layer-file arcpy.RefreshTOC() arcpy.RefreshActiveView() arcpy.SaveToLayerFile_management("inFCLyr", outlyrN, "RELATIVE") #Cleaning up arcpy.Delete_management(os.path.join(wp, "origlyr.lyr")) arcpy.Delete_management(os.path.join(wp, "shplyr.lyr"))