Creating address points for Polygon Layers

1509
4
04-26-2017 09:12 AM
EricShreve1
New Contributor II

Is there a way to take a set of polygons and have ArcMap append an already existing point feature class from the center of the polygons(centroid)? Basically what I want to do is select 40 parcel features and create individual address points based off of parcel layer into our existing address point feature class. The current way that I accomplish this task is to add each point manually.

I have look at this tool, but it creates a new feature class rather than adding to an existing feature class. 

Feature To Point—Data Management toolbox | ArcGIS Desktop 

Tags (3)
4 Replies
MicahBabinski
Occasional Contributor III

Hello Eric,

Do you need to do this on a recurring basis? If no, you could just Append the results of your Feature to Point centroid process to your existing address points using stand-alone geoprocessing tools. If you needed it on a recurring basis you could set up a process to accomplish this with ModelBuilder or Python. But really, you're halfway there with Feature to Point, the only additional step would be an Append.

Hope this helps.

Micah

EricShreve1
New Contributor II

Hello Micah,

Within Model Builder, I was able to successfully create address points within a test Geodatabase. I appreciate the support, I should be good to go.

 

MicahBabinski
Occasional Contributor III

Outstanding, Eric! Glad to help.

0 Kudos
EricShreve1
New Contributor II

Back once again. I additionally am looking to give the tool the capability to offset the address point after it's created, so that ArcObjects picks up spatial location fields (Zip Code, City Boundary, etc) and auto-populates the respective fields.

# Import arcpy module
import arcpy


# Local variables:
FIREADM_Parcels_MCT = "PARCELS MCT UPLOAD"
Points = "%scratchGDB%\\Points"
FIREADM_AddrPoints = Points
FIREADM_AddrPoints__3_ = "FIREADM.AddrPoints"

# Process: Feature To Point
arcpy.FeatureToPoint_management(FIREADM_Parcels_MCT, Points, "CENTROID")

# Process: Append
arcpy.Append_management("%scratchGDB%\\Points", FIREADM_AddrPoints__3_, "NO_TEST", "STREET_NUMBER \"STREET_NUMBER\" true true false 4 Long 0 10 ,First,#,%scratchGDB%\\Points,SITUS_STREET_NUMBER,-1,-1;PG_APN \"PG_APN\" true true false 12 Text 0 0 ,First,#,%scratchGDB%\\Points,APN,-1,-1;STREET_PREFIX \"STREET_PREFIX\" true true false 2 Text 0 0 ,First,#,%scratchGDB%\\Points,SITUS_STREET_DIRECTION,-1,-1;STREET_NAME \"STREET_NAME\" true true false 40 Text 0 0 ,First,#,%scratchGDB%\\Points,SITUS_STREET_NAME,-1,-1;STREET_TYPE \"STREET_TYPE\" true true false 12 Text 0 0 ,First,#,%scratchGDB%\\Points,SITUS_STREET_TYPE,-1,-1;STREET_SUFFIX \"STREET_SUFFIX\" true true false 10 Text 0 0 ,First,#,%scratchGDB%\\Points,SITUS_STREET_SUFFIX,-1,-1;SUITE \"SUIT\" true true false 40 Text 0 0 ,First,#,%scratchGDB%\\Points,SITUS_SUITE,-1,-1;CITY \"CITY\" true true false 40 Text 0 0 ,First,#;NAME \"NAME\" true true false 30 Text 0 0 ,First,#;ESN \"ESN\" true true false 5 Text 0 0 ,First,#;ET_X \"ET_X\" true true false 8 Double 8 38 ,First,#;ET_Y \"ET_Y\" true true false 8 Double 8 38 ,First,#;MODIFY_USER \"MODIFY_USER\" true true false 20 Text 0 0 ,First,#;ADDRESS \"ADDRESS\" true true false 60 Text 0 0 ,First,#,%scratchGDB%\\Points,ADDRESS,-1,-1;AVLZONE \"AVLZONE\" true true false 8 Double 8 38 ,First,#;MAPPAGE \"MAPPAGE\" true true false 16 Text 0 0 ,First,#;SUBZONE \"SUBZONE\" true true false 16 Text 0 0 ,First,#;SOURCE \"SOURCE\" true true false 20 Text 0 0 ,First,#;GLOBALID \"GLOBALID\" false false false 38 GlobalID 0 0 ,First,#;FLAG \"FLAG\" true true false 10 Text 0 0 ,First,#;MODIFY_DT \"MODIFY_DT\" true true false 36 Date 0 0 ,First,#;FLAG_REASON \"FLAG_REASON\" true true false 250 Text 0 0 ,First,#;SUBZONE_OVERRIDE \"SUBZONE_OVERRIDE\" true true false 16 Text 0 0 ,First,#;ACPOINT_X \"ACPOINT_X\" true true false 8 Double 8 38 ,First,#;ACPOINT_Y \"ACPOINT_Y\" true true false 8 Double 8 38 ,First,#;ACPOINT_INFO \"ACPOINT_INFO\" true true false 90 Text 0 0 ,First,#;UNIT_TYPE \"UNIT_TYPE\" true true false 10 Text 0 0 ,First,#;BUILDING \"BUILDING\" true true false 10 Text 0 0 ,First,#;ZIPCODE \"ZIPCODE\" true true false 5 Text 0 0 ,First,#;ACPOINT_INFO2 \"ACPOINT_INFO2\" true true false 300 Text 0 0 ,First,#", "")

def XYsetVALUE( shape, X_value, Y_value):
  myMoveX = 0.001
  myMoveY = 0.001
  point = shape.getPart(0)
  point.X = X_value + myMoveX
  point.Y = Y_value + myMoveY
  return point
0 Kudos