# -*- 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"))