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.
Connectez-vous pour publier, suivre du contenu, et plus encore. Nouveau ici ? Inscrivez-vous gratuitement.