import arcpy class Toolbox(object): def __init__(self): """Define the toolbox (the name of the toolbox is the name of the .pyt file).""" self.label = "Set Values for Multiple Fields" self.alias = "SetValues" # List of tool classes associated with this toolbox self.tools = [SetValues] class SetValues(object): def __init__(self): """Define the tool (tool name is the name of the class).""" self.label = "Set Values" self.description = "Sets values for many fields to one value, for all selected features" self.canRunInBackground = False def getParameterInfo(self): """Define parameter definitions""" params = None param0 = arcpy.Parameter( displayName="Choose Layer", name="layer", datatype="GPLayer", parameterType="Required", direction="Input") param1 = arcpy.Parameter( displayName="Choose Fields", name="field_list", datatype="Field", parameterType="Required", direction="Input", multiValue=True) param1.parameterDependencies = [param0.name] param2 = arcpy.Parameter( displayName="Value to Set", name="set_value", datatype="GPLong", parameterType="Required", direction="Input") mxd = arcpy.mapping.MapDocument("CURRENT") layerlist = [] layerlist = arcpy.mapping.ListLayers(mxd) param0.filter.list = [] param0.filter.type = "ValueList" for layer in layerlist: param0.filter.list += [layer.name] params = [param0, param1, param2] return params def isLicensed(self): """Set whether tool is licensed to execute.""" return True def updateParameters(self, parameters): """Modify the values and properties of parameters before internal validation is performed. This method is called whenever a parameter has been changed.""" return def updateMessages(self, parameters): """Modify the messages created by internal validation for each tool parameter. This method is called after internal validation.""" return def execute(self, parameters, messages): """The source code of the tool.""" param0 = parameters[0].value param1 = parameters[1].value.exportToString() param2 = parameters[2].value #arcpy.AddError(param0) #arcpy.AddError(param1) #arcpy.AddError(param2) mymxd = arcpy.mapping.MapDocument("CURRENT") selectedlayer = arcpy.mapping.ListLayers(mymxd, param0)[0] workspace = "C:\Users\Public\Documents" # never used, just needed a folder that would always exist on any computer, and have write access. # Start an edit session. Must provide the worksapce. edit = arcpy.da.Editor(workspace) # Edit session is started without an undo/redo stack for versioned data # (for second argument, use False for unversioned data) edit.startEditing(True) # Start an edit operation edit.startOperation() #param1 = "test2;test3" param1list = param1.split(";") fieldnamelist = [] for fieldname in param1list: fieldnamelist += [fieldname] setvalue = param2 with arcpy.da.UpdateCursor(selectedlayer, fieldnamelist) as cursor: for row in cursor: for index in range(len(row)): row[index] = setvalue cursor.updateRow(row) row = None del cursor # Stop the edit operation. edit.stopOperation() # Stop the edit session and save the changes edit.stopEditing(True) return
class SetValues(object): def __init__(self): """Define the tool (tool name is the name of the class).""" self.label = "Set Values" self.description = "Sets the values for several fields to a set numeric value, for all features in the selection set" self.canRunInBackground = False def getParameterInfo(self): """Define parameter definitions""" params = None param0 = arcpy.Parameter( displayName="Choose Layer", name="layer", datatype="GPLayer", parameterType="Required", direction="Input") param1 = arcpy.Parameter( displayName="Choose Fields", name="field_list", datatype="GPString", parameterType="Required", direction="Input", multiValue=True) param1.parameterDependencies = [param0.name]
def updateParameters(self, parameters): return
del cursor
sample_file = 'C:\\New_Text_file.txt' with open(sample_file, 'w') as f: f.write('Sample Text') f
<closed file 'C:\\New_Text_file.txt', mode 'w' at 0x0000000004BAAC90>
Angemeldete Mitglieder können Beiträge verfassen, Updates folgen und mehr. Neu hier? Registriere ein kostenloses Konto.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.