# SET UP import arcpy, glob, os base_features_Output = arcpy.GetParameter(0) arcpy.env.Workspace = base_features_Output arcpy.env.OverwriteOutput = True arcpy.AddMessage("Workspace: " + str(arcpy.env.Workspace)) df_Target = arcpy.GetParameterAsText(1) mxd = arcpy.mapping.MapDocument("CURRENT") dataFrame = arcpy.mapping.ListDataFrames(mxd, df_Target)[0] layerfile_list = r"N:\BASE_DATA\CANVEC\1_to_50k\lyrfiles" # 1. LIST FEATURE CLASSES IN TABLE OF CONTENTS TOC_shp_list = arcpy.mapping.ListLayers(mxd, "", dataFrame) # 2. EXPORT TOC FEATURES TO GEODATABASE arcpy.AddMessage("Exporting base features to geodatabase...") for shp in TOC_shp_list: shp_ext = shp.name[7:] arcpy.AddMessage(str(shp_ext)) arcpy.FeatureClassToFeatureClass_conversion(shp,base_features_Output,str(shp_ext)) arcpy.AddMessage(str(shp) + " ---- EXPORTED") del shp_ext arcpy.AddMessage("All base features exported to geodatabase.") del shp del TOC_shp_list # 3. RE-ADD NEWLY EXPORTED BASE FEATURES arcpy.AddMessage("Re-adding newly exported layers...") FC_shp_list = arcpy.ListFeatureClasses() for FC_shp in FC_shp_list: arcpy.AddMessage(FC_shp) new_shplyr = arcpy.mapping.Layer(str(base_features_Output) + "\\" + str(FC_shp)) arcpy.AddMessage(str(new_shplyr)) arcpy.mapping.AddLayer(df_Target, new_shplyr, "TOP") arcpy.RefreshActiveView() arcpy.RefreshTOC() # 4. APPLY SYMBOLOGY TOC_shp_list = arcpy.mapping.ListLayers(mxd, "", dataFrame) for shp in TOC_shp_list: for lyr in layerfile_list: if lyr == shp: arcpy.ApplySymbologyFromLayer_management(shp, lyr) del lyr del shp arcpy.RefreshTOC() arcpy.RefreshActiveView()
Solved! Go to Solution.
arcpy.mapping.AddLayer(df_Target, new_shplyr, "TOP")
arcpy.mapping.AddLayer(dataFrame, new_shplyr, "TOP")
arcpy.mapping.AddLayer(df_Target, new_shplyr, "TOP")
arcpy.mapping.AddLayer(dataFrame, new_shplyr, "TOP")