如何通过连接更新外部特性类的值

106
2
跳到解决方案
12-13-2022 12:53 PM
AndrewKan
通过
新贡献者II

你好,

我是属性规则的新手,我正在试图弄清楚如何构建一个计算属性规则,以根据相关表中的值更新外部特征类中的几个字段。

我有消防栓FC和消防栓检查台。它们通过带有asset_id的关系类进行关联。当用户为特定的资产_id创建一个新的检查或更新一个现有的检查时,我希望系统采用condition_rating和inspection_date,并更新Hydrant FC中相同资产_id的相应的recent_condition_rating和recent_inspection_date字段。

我已经看到使用intersect通过属性规则更新外部FC字段的示例,但我不知道如何使用非空间方法来做类似的事情。

任何帮助都将不胜感激。提前谢谢你。

0荣誉
1解决方案

接受的解决方案
JohannesLindner
常规赛MVP

你可以得到相关的功能FeaturesetByRelationshipName ()Filter ()

要更新另一个表,你必须返回一个包含特定键的字典:属性规则字典关键字- arcgis Pro |文档

//检查表的计算属性规则// field: empty // triggers: Insert, Update // load the hydrants var hydrant_fs = FeaturesetByName(…)// filter for the hydrant this inspection belong to var asset_id = $feature. //检查表的计算属性规则// field: empty // triggers: Insert, Update // load the hydrants var hydrant_fs = FeaturesetByName(…)asset_id var hydrant = First(Filter(hydrant_fs, "asset_id = @asset_id")) //如果没有找到对应的消防栓,abort if(hydrant == null) {return} //否则更新消防栓返回{edit: [{className: "HydrantFC", //消防栓全名fc更新:[{objectID:消防栓。OBJECTID,属性:{recent_condition_rating: $feature。Condition_rating recent_inspection_date: $feature。Inspection_date}}]}]}


祝你有愉快的一天!
约翰内斯

在原帖子中查看解决方案

2回答
JohannesLindner
常规赛MVP

你可以得到相关的功能FeaturesetByRelationshipName ()Filter ()

要更新另一个表,你必须返回一个包含特定键的字典:属性规则字典关键字- arcgis Pro |文档

//检查表的计算属性规则// field: empty // triggers: Insert, Update // load the hydrants var hydrant_fs = FeaturesetByName(…)// filter for the hydrant this inspection belong to var asset_id = $feature. //检查表的计算属性规则// field: empty // triggers: Insert, Update // load the hydrants var hydrant_fs = FeaturesetByName(…)asset_id var hydrant = First(Filter(hydrant_fs, "asset_id = @asset_id")) //如果没有找到对应的消防栓,abort if(hydrant == null) {return} //否则更新消防栓返回{edit: [{className: "HydrantFC", //消防栓全名fc更新:[{objectID:消防栓。OBJECTID,属性:{recent_condition_rating: $feature。Condition_rating recent_inspection_date: $feature。Inspection_date}}]}]}


祝你有愉快的一天!
约翰内斯
AndrewKan
通过
新贡献者II

非常感谢,约翰!谢谢你的帮助!

干杯

0荣誉