Hi all,
I have FC with 125 rows, and I would like to make a separate MXD for each single attribute I have got . In this case I will be using the FID for my loop. My scripts is not working as I wish. Do anyone have an idea how to automate this process? Thank you
Attach is my script:
import arcpy, os
from arcpy import env
#Overwrite features
arcpy.env.overwriteOutput = True
shape = r"K:\Working\Alex_Gole\cult.shp"
output = r"K:\Working\Alex_Gole\test"
layer = r"K:\Working\Alex_Gole\letter_lyr_new"
rows = arcpy.SearchCursor(shape, "", "", "FID", "FID")
mxd = arcpy.mapping.MapDocument(r"K:\Working\Alex_Gole\Try.mxd")
df = arcpy.mapping.ListDataFrames(mxd, "Layers")[0]
inset = arcpy.mapping.ListDataFrames(mxd, "New Data Frame")[0]
#For each work order:
for row in rows:
# Create a clause to select only the current record
whereclause = '"FID" = ' + str(row.FID)
# Create a feature layer from the current row only
arcpy.MakeFeatureLayer_management(shape, layer, whereclause)
#Create feature class for each point
arcpy.CopyFeatures_management(layer, r"K:\Working\Alex_Gole\test\try.shp" + str(row.FID))
newMxd = "Fig1_" + row.Name + ".mxd"
pathNewMxd = r'K:\Working\Alex_Gole\test\\' + newMxd
if os.path.exists(pathNewMxd):
pass
else:
#copy template and name file "Fig1_Task_WO_Name_NuPoles"
mxd.saveACopy(r"K:\Working\Alex_Gole\test\\"
+ newMxd)
print "Saving " + newMxd
print "All done."
del mxd
I have FC with 125 rows, and I would like to make a separate MXD for each single attribute I have got . In this case I will be using the FID for my loop. My scripts is not working as I wish. Do anyone have an idea how to automate this process? Thank you
Attach is my script:
import arcpy, os
from arcpy import env
#Overwrite features
arcpy.env.overwriteOutput = True
shape = r"K:\Working\Alex_Gole\cult.shp"
output = r"K:\Working\Alex_Gole\test"
layer = r"K:\Working\Alex_Gole\letter_lyr_new"
rows = arcpy.SearchCursor(shape, "", "", "FID", "FID")
mxd = arcpy.mapping.MapDocument(r"K:\Working\Alex_Gole\Try.mxd")
df = arcpy.mapping.ListDataFrames(mxd, "Layers")[0]
inset = arcpy.mapping.ListDataFrames(mxd, "New Data Frame")[0]
#For each work order:
for row in rows:
# Create a clause to select only the current record
whereclause = '"FID" = ' + str(row.FID)
# Create a feature layer from the current row only
arcpy.MakeFeatureLayer_management(shape, layer, whereclause)
#Create feature class for each point
arcpy.CopyFeatures_management(layer, r"K:\Working\Alex_Gole\test\try.shp" + str(row.FID))
newMxd = "Fig1_" + row.Name + ".mxd"
pathNewMxd = r'K:\Working\Alex_Gole\test\\' + newMxd
if os.path.exists(pathNewMxd):
pass
else:
#copy template and name file "Fig1_Task_WO_Name_NuPoles"
mxd.saveACopy(r"K:\Working\Alex_Gole\test\\"
+ newMxd)
print "Saving " + newMxd
print "All done."
del mxd