AnsweredAssumed Answered

Sequential numbering

Question asked by CCweedcontrol on Sep 10, 2015
Latest reply on Sep 10, 2015 by LanceCole

I have two layers with building footprints I need to update one of them. After merging layers I have some features with an sequential number in the field Bld_ID field but some don't. So i need to update the Bld_ID with sequential number and they start with "Bld": example bld000001, bld00002, bld00003, etc. So some how i need to find the last highest sequential number in the field Bld_ID then add 1 to that and use that to update the buildings i have selected.

 

I have a code i used for something similar but i am running into the an error with this any help would be appreciated:

 

Runtime error

Traceback (most recent call last):

  File "<string>", line 30, in <module>

IndexError: list index out of range

 

import arcpy, sys, re, os  
from arcpy import env  
import string 

arcpy.env.qualifiedFieldNames = False      
arcpy.env.overwriteOutput = True
       
Bld = "BuildingFootprints" #target point feature class

BldCount = int(arcpy.GetCount_management(Bld).getOutput(0))

dsc = arcpy.Describe(Bld) 
selection_set = dsc.FIDSet         
if len(selection_set) == 0:       
    print "There are no features selected"  
             
elif BldCount >= 1:
    #Gets the highest AddressID and calculates new point to assign new highest AddressID
    Bld_list = []      
    with arcpy.da.SearchCursor(Bld, ["Bld_ID"]) as cursor:      
        for row in cursor:      
            try:      
                if "Bld" in row[0]:      
                    Bld_list.append(int(row[0].strip("Bld")))         
            except TypeError:      
                pass              
    del cursor      
          
    Bld_list.sort()      
    Bld_ID = Bld_list[-1] + 1      
    Bld_ID = 'Bld' + str(Bld_ID)

    with arcpy.da.UpdateCursor(Bld, "Bld_ID") as rows:       
        for row in rows:       
            row[0] = Bld_ID             
            rows.updateRow(row)  
        del row       
        del rows 

Outcomes