1

I'm trying to update my text elements, but after running script no changes occur and no error are triggered. Running suggested code triggered an error.

I need to update my title and date text box.

I used the suggested script and receive:

Runtime error 
Traceback (most recent call last):
File "<string>", line 72, in <module>
ImportError: No module named mapping

Here's what I have so far:

# Import arcpy module
import arcpy

#Work Env
arcpy.env.workspace = "F:\APPDATA\GISMAPS\Projects\Planning\Requests\Bryan\2018\Planning\Teresita_care\Test_File"

# Script arguments
Parcels = arcpy.GetParameterAsText(0)

Selection_type = arcpy.GetParameterAsText(1)
if Selection_type == '#' or not Selection_type:
    Selection_type = "NEW_SELECTION" # provide a default value if unspecified

Distance__value_or_field_ = arcpy.GetParameterAsText(2)
if Distance__value_or_field_ == '#' or not Distance__value_or_field_:
    Distance__value_or_field_ = "300 Feet" # provide a default value if unspecified

Distance__value_or_field___2_ = arcpy.GetParameterAsText(3)
if Distance__value_or_field___2_ == '#' or not Distance__value_or_field___2_:
    Distance__value_or_field___2_ = "500 Feet" # provide a default value if unspecified

Expression = arcpy.GetParameterAsText(4)
if Expression == '#' or not Expression:
    Expression = "\"AIN\" = '7050005016'" # provide a default value if unspecified

v300ft_shp = arcpy.GetParameterAsText(5)

v500ft_shp = arcpy.GetParameterAsText(6)

# Local variables:
#Parcel_Address = Parcels

#If layer already exist overwrite
arcpy.env.overwriteOutput=True

#Create Parcels layer
arcpy.MakeFeatureLayer_management("F:/APPDATA/GISMAPS/Projects/Planning/Requests/Bryan/2018/Planning/Teresita_care/Test_File/Parcels.shp","Parcels.lyr")


# Process: Select Layer By Attribute
arcpy.SelectLayerByAttribute_management("Parcels.lyr", Selection_type, Expression)

# identify the current map document

mxd = arcpy.mapping.MapDocument('CURRENT')

# identify the data frame
df = arcpy.mapping.ListDataFrames(mxd)[0]

# use the zoom to selected features method of the data frame to update the extent
df.zoomToSelectedFeatures ()

#Set Scale
df.scale = 3860

# Process: Buffer
arcpy.Buffer_analysis("Parcels.lyr", "F:/APPDATA/GISMAPS/Projects/Planning/Requests/Bryan/2018/Planning/Teresita_care/Test_File/samv300ft_shp", Distance__value_or_field_, "FULL", "ROUND", "NONE", "", "PLANAR")

#Import Symbology layer to buffer
arcpy.ApplySymbologyFromLayer_management ("samv300ft_shp", "F:/APPDATA/GISMAPS/Projects/Planning/Requests/Bryan/2018/Planning/Teresita_care/Test_File/Symbol_300ft.lyr")

# Process: Buffer (2)
arcpy.Buffer_analysis("Parcels.lyr", "F:/APPDATA/GISMAPS/Projects/Planning/Requests/Bryan/2018/Planning/Teresita_care/Test_File/samv500ft_shp", Distance__value_or_field___2_, "FULL", "ROUND", "NONE", "", "PLANAR")

#Import Symbology layer to buffer
arcpy.ApplySymbologyFromLayer_management ("samv500ft_shp", "F:/APPDATA/GISMAPS/Projects/Planning/Requests/Bryan/2018/Planning/Teresita_care/Test_File/Symbol_300ft.lyr")


import arcpy
import os
import sys
import mapping as m

# Folder containing MXD's 
folder = r'F:\APPDATA\GISMAPS\Projects\Planning\Requests\Bryan\2018\Planning\Teresita_care\Test_File\Test_Script.mxd' 
arcpy.env.workspace = folder   

# Find and Replace text element 
find_elm = 'TEXT_ELEMENT' 
replace_elm = 'Text you want to replace find_elm'  
# Find all .mxd files in folder 
# replaces text element in mxd if it exists
for mapDoc in arcpy.ListFiles('*.mxd'):
    mxd = arcpy.mapping.MapDocument(os.path.join(folder, mapDoc))
    for elm in arcpy.mapping.ListLayoutElements(mxd, 'TEXT_ELEMENT'):
        if elm.text == find_elm:
            elm.text = replace_elm
            print 'Replaced {0} in {1}'.format(find_elm, mapDoc)
    mxd.save()
    del mxd  
0

You may try something like the below code, please note its not tested:

import arcpy, os from arcpy 
import mapping as m  
# Folder containing MXD's 
folder = r'C:\path\to_your\mapdocuments' 
arcpy.env.workspace = folder   

# Find and Replace text element 
find_elm = 'Text you want to find' 
replace_elm = 'Text you want to replace find_elm'  
# Find all .mxd files in folder 
# replaces text element in mxd if it exists
for mapDoc in arcpy.ListFiles('*.mxd'):
    mxd = arcpy.mapping.MapDocument(os.path.join(folder, mapDoc))
    for elm in arcpy.mapping.ListLayoutElements(mxd, 'TEXT_ELEMENT'):
        if elm.text == find_elm:
            elm.text = replace_elm
            print 'Replaced {0} in {1}'.format(find_elm, mapDoc)
    mxd.save()
    del mxd  

You can also use a wild card in the http://resources.arcgis.com/en/help/main/10.1/index.html#/ListLayoutElements/00s30000003w000000/]ListLayoutElements[/url

  • I ran the new script and receive this message:import arcpy Runtime error Traceback (most recent call last): File "<string>", line 72, in <module> ImportError: No module named mapping – Bryan Alcazar Jun 13 '18 at 17:35
  • Also, I ran the script without importing mapping and no errors occur but no changes are made to the text element. – Bryan Alcazar Jun 13 '18 at 17:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.