Modelbuilder - select features within a buffer distance using arcade

1167
3
02-15-2022 12:32 PM
Labels (2)
SarahHartholt
Occasional Contributor III

I'm in the process of building a model using ArcPro 2.9.0 to run some analysis on a number of features (address points, parcels & zoning). What I would like to do is iterate through each of the points in my address layer, calculate a search radius based on the zoning, and then select all address points within that buffer distance to perform additional analysis. I've created an arcade expression to add the buffer distance to my attribute table based on the zoning layer (i.e. residential = 500m, commercial = 1000m). My next step is to select the surrounding address points that fall within the buffer. How would I accomplish this using my buffer attribute field? I am trying to avoid unnecessarily writing tens of thousands of buffer polygons to a feature class in my geodatabase.

SarahHartholt_1-1644956866802.png

 

 

0 Kudos
3 Replies
KimGarbade
Occasional Contributor III

Sounds like you want to use the "Get Field Value" utility.  You'll find it under Utilities dropdown in the Insert Group of the ModelBuilder tab (highlighted in both images below).  

KimGarbade_0-1644963062314.png

KimGarbade_1-1644963273701.png

 

Once you pick the field you want to get the value from (in your case your buffer attribute field), you can reference that value in another statement using the %variable% syntax (in the below case %Value%).

KimGarbade_2-1644963642044.png

Hope I'm understanding what you want correctly and that this helps.

0 Kudos
SarahHartholt
Occasional Contributor III

Thank you, this is very close! I've added the "Get Field Value" utility to access my buffer distance but now I can't seem to reference it in the "Select Layer by Location" tool. Perhaps I need to iterate through my address feature class first so that it will create the selection using a single address point.

SarahHartholt_0-1645019744715.png

 

0 Kudos
KimGarbade
Occasional Contributor III

That does look close from what  I can see.  Try making "BufferValue" a precondition of the "Select Layer By Location" tool.  That way it has to exist before that tool will try to run.  That being said, from your earlier description it does sound like you need an iterator to step through your address points (if you want to process them one at a time and all (or a selected set of them) at one time).  You could just select one address point for testing before adding the iterator. 

 

0 Kudos