I have mxd i work on for different cases, but have the the same layers. The script i am working on needs to update the "Subject_Property" layer data source. I am having trouble getting this to work.
The script will search for a text in the "DXF_TEXT" filed and export it out to the location of the mxd. The mxd already has the layer "SUBJECT_PROPERTY" but i need to get it to update the mxd's "SUBJECT_PROPERTY" with the one that was searched and exported, don't needed added to the current mxd. hopefully this makes sense.
Here is the code i have so far. Any help would be gratefully appreciated.
Thanks.
The script will search for a text in the "DXF_TEXT" filed and export it out to the location of the mxd. The mxd already has the layer "SUBJECT_PROPERTY" but i need to get it to update the mxd's "SUBJECT_PROPERTY" with the one that was searched and exported, don't needed added to the current mxd. hopefully this makes sense.
Here is the code i have so far. Any help would be gratefully appreciated.
Thanks.
Code:
import arcpy, string, os
arcpy.env.overwriteOutput = True
mxd = arcpy.mapping.MapDocument("CURRENT")
df = arcpy.mapping.ListDataFrames(mxd, "Layers")[0]
lyr = arcpy.mapping.ListLayers(mxd, "TAXLOTS")[0]
arcpy.env.workspace = os.path.dirname(mxd.filePath)
wp = os.path.dirname(mxd.filePath)
value = arcpy.GetParameterAsText(0)
if value == "#" or value == "":
value = None
if value:
arcpy.SelectLayerByAttribute_management(lyr, "NEW_SELECTION", "\"DXF_TEXT\" = '" + str(value) +"'")
else:
arcpy.AddError("no value")
df.extent = lyr.getSelectedExtent()
df.scale = 7000
if int(arcpy.GetCount_management("TAXLOTS").getOutput(0)) > 0:
arcpy.Select_analysis("TAXLOTS", "SUBJECT_PROPERTY")
#del mxd
#mxd = arcpy.mapping.MapDocument("CURRENT")
#lyr = arcpy.mapping.ListLayers(mxd, "SUBJECT_PROPERTY")[0]
lyrpath = lyr.workspacePath
data_path = os.path.dirname(lyrpath)
SP = "SUBJECT_PROPERTY"
lyr.replaceDataSource(data_path, "SHAPEFILE_WORKSPACE", SP, True )