Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have parcel and buildings layers.

In their attribute tables I want to replace "NULL" values with numbers from 1 to 2000, in "Parcel ID", or "Building ID" field.

How can I do this in ArcGIS Desktop?

share|improve this question
up vote 9 down vote accepted

Here is a code block for the Field Calculator that will do what you require.

  1. Open the attribute table
  2. Select all of the records that contain a NULL value in the desired field
  3. Open up the Field Calculator and insert this code in the appropriate sections.

Accumulative and sequential calculations
Calculate a sequential ID or number based on an interval.

Expression:
autoIncrement()

Expression Type:
PYTHON_9.3

Code Block:
rec=0
def autoIncrement():
 global rec
 pStart = 1 #adjust start value, if req'd 
 pInterval = 1 #adjust interval value, if req'd
 if (rec == 0): 
  rec = pStart 
 else: 
  rec = rec + pInterval 
 return rec

This code sequence is taken from the ArcGIS 10.0 Desktop Help: Calculate Field Examples

I would highly recommend that you browse through the help documentation in that file and in the other help sections for ArcGIS, as there are many useful examples and code samples to pull from.

Enter the code above, into the Field Calculator as shown in the screen shot below: You would enter the code into the sections as detailed below:

  1. Choose Python as the Parser
  2. Pre-Logic Script Code: Enter code listed under Code Block
  3. Under the field name, in this case, RD20FULL =: Enter code listed under Expression
  4. Press OK

Example Field Calculator Code Entry

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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