#Import import arcpy #Variables TOWNSHIP = arcpy.GetParameterAsText(0) RANGE = arcpy.GetParameterAsText(1) SEC = arcpy.GetParameterAsText(2) SUBCODE = arcpy.GetParameterAsText(3) BLOCK = arcpy.GetParameterAsText(4) LOT = arcpy.GetParameterAsText(5) mxd = arcpy.mapping.MapDocument("CURRENT") df = arcpy.mapping.ListDataFrames(mxd, "Layers")[0] lyr = arcpy.mapping.ListLayers(mxd, "Parcels", df)[0] #Logic try: whereClause = ""TOWNSHIP" AND "RANGE" AND "SEC" AND "SUBCODE" AND "BLOCK" AND "LOT" = '"+Parcels+"'" arcpy.SelectLayerByAttribute_management(lyr, "NEW_SELECTION", whereClause) df.extent = lyr.getSelectedExtent() df.scale = df.scale*1.1 except: print arcpy.GetMessages()
Solved! Go to Solution.
#Import import arcpy, sys, traceback try: mxd = arcpy.mapping.MapDocument("CURRENT") df = arcpy.mapping.ListDataFrames(mxd, "Layers")[0] lyr = arcpy.mapping.ListLayers(mxd, "Parcels", df)[0] fields = ["TOWNSHIP", "RANGE", "SEC", "SUBCODE", "BLOCK","LOT"] sql_dict = {} for field in fields: sql_dict[arcpy.AddFieldDelimiters(lyr, field)] = arcpy.GetParameterAsText(fields.index(field)) # construct where clause whereClause = ' AND '.join("{0} = '{1}'".format(k,v) for k,v in sql_dict.iteritems()) arcpy.AddMessage('" %s "' %whereClause) arcpy.SelectLayerByAttribute_management(lyr, "NEW_SELECTION", whereClause) df.extent = lyr.getSelectedExtent() df.scale = df.scale*1.1 except: # Get the traceback object tb = sys.exc_info()[2] tbinfo = traceback.format_tb(tb)[0] pymsg = "PYTHON ERRORS:\nTraceback info:\n%s\nError Info:\n%s\n" % (tbinfo, sys.exc_info()[1]) msgs = "ArcPy ERRORS:\n%s\n" % arcpy.GetMessages(2) arcpy.AddError(pymsg) arcpy.AddError(msgs)
" "SEC" = '36' AND "RANGE" = '04' AND "BLOCK" = '54' AND "SUBCODE" = 'NW NW' AND "TOWNSHIP" = '81' AND "LOT" = 'C' "
#Import import arcpy, sys, traceback try: mxd = arcpy.mapping.MapDocument("CURRENT") df = arcpy.mapping.ListDataFrames(mxd, "Layers")[0] lyr = arcpy.mapping.ListLayers(mxd, "Parcels", df)[0] fields = ["TOWNSHIP", "RANGE", "SEC", "SUBCODE", "BLOCK","LOT"] sql_dict = {} for field in fields: sql_dict[arcpy.AddFieldDelimiters(lyr, field)] = arcpy.GetParameterAsText(fields.index(field)) # construct where clause whereClause = ' AND '.join("{0} = '{1}'".format(k,v) for k,v in sql_dict.iteritems()) arcpy.AddMessage('" %s "' %whereClause) arcpy.SelectLayerByAttribute_management(lyr, "NEW_SELECTION", whereClause) df.extent = lyr.getSelectedExtent() df.scale = df.scale*1.1 except: # Get the traceback object tb = sys.exc_info()[2] tbinfo = traceback.format_tb(tb)[0] pymsg = "PYTHON ERRORS:\nTraceback info:\n%s\nError Info:\n%s\n" % (tbinfo, sys.exc_info()[1]) msgs = "ArcPy ERRORS:\n%s\n" % arcpy.GetMessages(2) arcpy.AddError(pymsg) arcpy.AddError(msgs)
" "SEC" = '36' AND "RANGE" = '04' AND "BLOCK" = '54' AND "SUBCODE" = 'NW NW' AND "TOWNSHIP" = '81' AND "LOT" = 'C' "
sql_dict[arcpy.AddFieldDelimiters(lyr, field)] = arcpy.GetParameterAsText(fields.index(field))
{"TOWNSHIP" : '81', "RANGE" : '04', "BLOCK" : '54', "SUBCODE" : 'NW NW', "SEC" : '36'}
TOWNSHIP = arcpy.GetParameterAsText(0) RANGE = arcpy.GetParameterAsText(1) SEC = arcpy.GetParameterAsText(2) SUBCODE = arcpy.GetParameterAsText(3) BLOCK = arcpy.GetParameterAsText(4) LOT = arcpy.GetParameterAsText(5) whereclause = ''' "TOWNSHIP" = '{0}' AND "RANGE" = '{1}' AND "SEC" = '{2}' AND "SUBCODE" = '{3}' AND "BLOCK" = '{4}' AND "LOT" = '{5}' '''.format(TOWNSHIP, RANGE, SEC, SUBCODE, BLOCK, LOT)
for field in fields: sql_dict[arcpy.AddFieldDelimiters(lyr, field)] = arcpy.GetParameterAsText(fields.index(field)) # construct where clause whereClause = ' AND '.join("{0} = '{1}'".format(k,v) for k,v in sql_dict.iteritems())
fieldList = arcpy.ListFields(fc, "", "STRING") for field in fieldList: updateRows = arcpy.da.UpdateCursor(fc, RMS + " IS NULL", "", RMS) for updateRow in updateRows: updateRow.setValue(RMS, "") updateRows.updateRow(updateRow) del updateRow, updateRows