This looks like something you would want to build a python script tool to handle.A search cursor can be run through the table, and a python dictionary populated using the Parcel field value as the key.Inside each Parcel entry you would build another dictionary, keyed to the record, that holds the bit of the description found in each Legal field.You would end up with something like this:bigDict = {
"02-0002-901":{1:"NW1/4SE1/4 LESS W 500 FT, SW1/4NE1/4 LESS W 5",
2:"00 FT OF S 753 FT & N1/2NE1/4 LESS L.P. BIG S",
3:"TONE LAKE-WHETSTONE RIVER PROJECT"},
"02-0002-902":{1:"NW2/4SE2/4 LESS W 501 FT, SW1/4NE1/4 LESS W 5",
2:"00 FT OF S 754 FT & N1/2NE1/4 LESS L.P. BIG S",
3:"TICK LAKE-BLUESTONE RIVER PROJECT"}
}
to get that you would need some code like this:bigDict = {}
cur = arcpy.SearchCursor(theTable)
for row in cur:
par = row.Parcel
rec = row.Record
leg = row.Legal
if bigDict.has_key(par):
if not bigDict[par].has_key(rec):
bigDict[par][rec] = leg
else:
pass
else:
bigDict[par]= {rec:leg}
You can then use an insert cursor to build a new table with a single legal description for each Parcel ID:(you need to make the empty table first)iCur = InsertCursor(newTable)
# for each parcel ID
for pKey in bigDict:
# make a blank legal description
outString = ""
# sort the Record keys for this parcel, so they will be in order
keyList = bigDict[pKey].keys().sort
# loop through them in order: 1, 2, 3 etc
for aKey in keyList:
# build the concatenated string
outString = "%s%s" % (outString, bigDict[pKey][aKey])
# make a new row in the table
aNewRow = iCur.newRow()
# set the Parcel item to the parcel ID
aNewRow.Parcel = pKey
# set the legal description to the contactenated string
aNewRow.Legal = outString
# commit the new row
iCur.insertRow(aNewRow)
make this script into a tool with the appropriate input and output parameters and add it to your model