iterate feature selection and determine whether to append it to another feature class

577
3
Jump to solution
02-23-2022 09:38 AM
SarahHartholt
Occasional Contributor III

I've been mulling over some ideas about how to add another process to a model I've created that contains an iterator. My model currently uses a series of arcade expressions to calculate attribute values in a point feature class. Next, I would like to do the following:

1. see if the value in the IssueLicense field is 'yes'

2. if IssueLicense == 'yes', see if the point falls within 5m of a point in another point feature class (LicenseApproved)

3. append the point to a new feature class if there are no LicenseApproved points within 5m

 

Any advice on tools/calculations that I could potentially use would be appreciated!

0 Kudos
1 Solution

Accepted Solutions
SarahHartholt
Occasional Contributor III

Solved my own problem using a combination of Logical tools (If Spatial Relationship Is, If Field Value Is)

Examples of using logical tools in ModelBuilder—ArcGIS Pro | Documentation

View solution in original post

0 Kudos
3 Replies
curtvprice
MVP Esteemed Contributor
This does not sound like a one-at-a-time thing, this is something you can do with an entire feature class.
1. Create a feature layer from the point using the Create Feature Layer tool with the sql expression IssueLicense = 'Yes'
2. Select Layer by Location to select points not within 5m of an AddressPoint (within a distance, invert selection)
3. Use the Append tool to add points.

0 Kudos
SarahHartholt
Occasional Contributor III

The process needs to be created within my current model since its existence in my LicenseApproved feature class is directly related to the value assigned to the IssueLicense attribute (yes, no) of the other points in my AddressPoint feature class.

This is how my model currently works:

1. iterate AddressPoint feature class

2. calculate the number of licenses (LicenseApproved feature class) that already exist within the neighbouhood and populate the LicenseCount attribute field

3. calculate the IssueLicense field (if more than 20% of homes in the neighbourhood already have a license IssueLicense = 'no', if less than 20% of homes already have a license IssueLicense = 'yes')

4. append the point to my LicenseApproved feature class if IssuedLicense = 'yes' and is not within 5m of an existing point in the LicenseApproved feature class

If I don't include step 4, licenses will be approved for too many addresses. i.e. in a neighborhood of 10 homes, home A is approved for a license (1/10 = 10%). If home B applies for a license they should be denied (home A & B = 2/10 homes in the neighborhood with a license = 20%). BUT if home A has not been appended to the LicenseApproved feature class the calculation in step 3 will not know that the license for home A exists and will give one to home B.

0 Kudos
SarahHartholt
Occasional Contributor III

Solved my own problem using a combination of Logical tools (If Spatial Relationship Is, If Field Value Is)

Examples of using logical tools in ModelBuilder—ArcGIS Pro | Documentation

0 Kudos