Solved! Go to Solution.
mxd = arcpy.mapping.MapDocument( path to mxd ) df = arcpy.mapping.ListDataFrames(mxd)[0] ###UpdateLayer requires a data frame reference (returns 1st df) lyrFile = arcpy.mapping.Layer( path to lyr file ) ###This is a lyr file with pre-authored symbology you will apply to layer lyr = arcpy.mapping.ListLayers(mxd, "layer name", df)[0] ###A reference to the shapefile layer in MXD you want to update. arcpy.mapping.UpdateLayer(df, lyr, lyrFile, True) ###This will update ONLY the symbology
SubjectLyr = arcpy.mapping.Layer(r"F:\\testFiles\\output\\Population23_KDens.lyr") mxd = arcpy.mapping.MapDocument("F:\\testFiles\\testMap.mxd") df = arcpy.mapping.ListDataFrames(mxd)[0] wPath = "F:\\testFiles\\output\\" # same as in line 1 #Add the layer to basemap arcpy.mapping.AddLayer(df, SubjectLyr,"AUTO_ARRANGE") #Update the layer SubjectLyr = arcpy.mapping.ListLayers(mxd, SubjectLyr.name, df)[0] # change reference to layer in mxd sourceLayer = arcpy.mapping.Layer(wPath+"templates\\template.lyr") # get template layer arcpy.mapping.UpdateLayer(df, SubjectLyr, sourceLayer, True) ###Zoom to selection df.zoomToSelectedFeatures() lyrExtent = SubjectLyr.getSelectedExtent() df.extent = lyrExtent arcpy.mapping.ExportToPDF(mxd, r"F:\\testFiles\\output\\Population23_KDens_Map.pdf") print('DONE!')