I think based your description. You would be able to accomplish this task using a Calculation (or batch calculation) attribute rules. You can do proximity queries within an arcade script (as an exmample, buffering a polygon and locating features that are within that buffer):
var bufferPolygon = Buffer($feature,20,'feet')
var structureFeatures = FeatureSetByName($datastore, 'somedb.user.StructureJunction', ['objectid', 'someValue'], true)
var structureFeature = First(Intersects(structureFeatures, bufferPolygon))
You can then update attributes on the feature you are editing ($feature) or on the features returned from the query (I'm not certain which you are specifically requesting, based on the value from the other feature.
Calculation rules target a field, you would target the field to update on the feature you are editing, and return the value to add into that field:
return structureFeature.someValue
If, instead, you are attempting to update the features from within the buffer, you can return a DML dictionary to do the work for you:
var structureFeatures = Intersects(structureFeatures, bufferPolygon)
j=0
for(var structureFeature in structureFeatures)
{
structureFeatureEdits[j] = {'ObjectID':structureFeature.objectid, 'attributes':{'FIELD_TO_UPDATE':$feature.fieldToPulllValueToUpdate}}
j = j + 1 }
//return the target field back to the $feature, include the 'edit' DML dictionary //to edit the other features.
return{ 'result':$feature.TheTargetField,
'edit':[{
'className':'TheOtherClassBeingUpdated','updates':structureFeatureEdits
}]
}
Hope that helps, but for more examples the documentation is here:https://developers.arcgis.com/arcade/
And for a playground to try your hand at the scripting: https://developers.arcgis.com/arcade/playground/
There are Arcade functions available to use with attribute rules to accomplish this workflow.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.