I have a Shapefile:
- C:\DATA\points.shp
A layer file:
- C:\SYMBOLOGY\symbology.lyr
And a map document:
- C:\MAPS\map.mxd
How can I add points.shp to map.mxd with the properties of symbology.lyr all using python?
I just tested this and it worked!
The layer file that I added, and then changed the data source of, was saved from a layer called dummy that pointed at a dummy.shp file.
import arcpy
mxd = arcpy.mapping.MapDocument("C:\\MAPS\\map.mxd")
df = arcpy.mapping.ListDataFrames(mxd,"Layers")[0]
addLayer = arcpy.mapping.Layer("C:\\SYMBOLOGY\\symbology.lyr")
arcpy.mapping.AddLayer(df, addLayer)
lyr = arcpy.mapping.ListLayers(mxd,"dummy",df)[0]
print lyr.name
print lyr.dataSource
lyr.replaceDataSource("C:\\DATA\\", "SHAPEFILE_WORKSPACE", "points")
lyr.name = "points"
print lyr.dataSource
print lyr.name
mxd.saveACopy("C:\\MAPS\\map2.mxd")
I haven't tested this out, but the easiest way should be to simply rename (or copy) symbology.lyr to points.lyr (the same basename as your shapefile). Generally speaking, when you load a shapefile into ArcMap that has a similarly name Layer file, the symbology of the layer "follows" the raw data (shapefile) and is applied on load.