I working on mxd (I work with ArcMap 10.2.2 & python 2.7.5.) that have 100 layers. I'm trying with python script to add layers to dataframe and check if the layers are within the dataframe. if it within I want that python will add the layers to the table of content, and if it not within the dataframe- the python will remove the layers. Manually I can do it by adding each layer and see if it in the dataframe and then start to choose what to remove, but it will take a lot of time. I also can use this option:
and it also will take a lot of time. I have this script:
import arcpy from arcpy import env area= '162000 631000 172000 641000' env.workspace = r"C:\project" for mxdname in arcpy.ListFiles("*.mxd"): print mxdname mxd = arcpy.mapping.MapDocument(r"C:\project\\" + mxdname) df = arcpy.mapping.ListDataFrames(mxd, "Layers")[0] df.extent = area for lyr in arcpy.mapping.ListLayers(mxd, "",df): if lyr.name == "residence": addLayer = arcpy.mapping.Layer(r"C:\project\layers\residence.lyr") arcpy.mapping.AddLayerToGroup(df, lyr, addLayer, "BOTTOM") else lyr.dataSource == r"F:\GIS\topo_50000\50000.sid": arcpy.mapping.RemoveLayer(df, lyr) if lyr.name == "rivers2": addLayer = arcpy.mapping.Layer(r"C:\project\layers\rivers2.lyr") arcpy.mapping.AddLayerToGroup(df, lyr, addLayer, "BOTTOM") mxd.save() del mxd I hope someone can describe an easy way to accomplish what I'm after with python script?
أكثر...

and it also will take a lot of time. I have this script:
import arcpy from arcpy import env area= '162000 631000 172000 641000' env.workspace = r"C:\project" for mxdname in arcpy.ListFiles("*.mxd"): print mxdname mxd = arcpy.mapping.MapDocument(r"C:\project\\" + mxdname) df = arcpy.mapping.ListDataFrames(mxd, "Layers")[0] df.extent = area for lyr in arcpy.mapping.ListLayers(mxd, "",df): if lyr.name == "residence": addLayer = arcpy.mapping.Layer(r"C:\project\layers\residence.lyr") arcpy.mapping.AddLayerToGroup(df, lyr, addLayer, "BOTTOM") else lyr.dataSource == r"F:\GIS\topo_50000\50000.sid": arcpy.mapping.RemoveLayer(df, lyr) if lyr.name == "rivers2": addLayer = arcpy.mapping.Layer(r"C:\project\layers\rivers2.lyr") arcpy.mapping.AddLayerToGroup(df, lyr, addLayer, "BOTTOM") mxd.save() del mxd I hope someone can describe an easy way to accomplish what I'm after with python script?
أكثر...