操作方法

操作方法:在ArcGIS Pro中使用属性规则根据公共字段自动填充

Last Published: October 13, 2024

描述

为新要素图层创建要素时,很少会引用要素图层的现有表或属性表来填充表和要素图层的匹配字段的值。 创建大量要素时,使用现有表重新填充字段可能非常耗时,或者需要执行其他步骤来运行计算。 可以在使用属性规则创建要素时自动填充数据。

解决方案或解决方法

  1. 打开新工程并添加表和新要素图层。
  2. 可以使用添加全局ID工具将GlobalID添加到新要素图层。
  3. 内容面板中,右键单击要绘制的要素图层>数据设计>属性规则
  4. 单击添加规则。 选择新建规则,然后输入规则名称。 在此示例中,规则名称为“新规则”
  5. 表达式文本框中,插入以下脚本: 修改下列参数。
    • 将Feature_Name修改为要与之比较的源要素图层名称。 它也可以是独立表的名称。
    • 将Matching_Field修改为与要之比较的匹配字段。 在本例中,使用了SHAPE字段。
    • 将Output_Field修改为值必须复制到新要素中的字段的名称。 在此示例中,使用了 方向 字段。
var sourceTable = FeatureSetByName($datastore,"<Feature_Name>", ["<Matching_Field>", "<Output_Field>"], false)
var matchingAttr = $feature.<Matching_Field>
var matchedFeature = First(Filter(sourceTable, "<Matching_Field> = @matchingAttr"))
If (matchedFeature == null){
    return "not found"}
else{
    return matchedFeature.<Output_Field>}
以下是完整的工作脚本:
var sourceTable = FeatureSetByName($datastore,"House", ["OBJECTID", "Direction"], false)
var matchingOID = $feature.OBJECTID 
var matchedFeature = First(Filter(sourceTable, "OBJECTID = @matchingOID"))
If (matchedFeature == null){
    return "not found"}
else{
    return matchedFeature.matchedFeature.Direction}
  1. 选中触发器部分下的插入更新复选框。
新规则的属性规则窗口
  1. 属性规则 功能区上,单击 保存
  2. 绘制要素。 下面的地图展示了已填充的方向字段。
绘制新要素时会自动填充所需字段

文章 ID: 000030999

接收通知并查找新问题或常见问题的解决方案

从我们全新的 AI 聊天机器人中获得简明答案和视频解决方案。

下载 Esri 支持应用程序

相关信息

发现关于本主题的更多内容

获取来自 ArcGIS 专家的帮助

联系技术支持部门

下载 Esri 支持应用程序

转至下载选项