操作方法

操作方法:使用 ArcPy 确定地理数据库是否包含关系 类

Last Published: November 26, 2020

摘要

可以使用 ArcGIS Desktop Standard 或 Advanced 许可在地理数据库上创建关系类。 关系类用于管理要素类与表中的对象之间的关联。 由于工作空间中可能存在多个地理数据库,因此手动检查地理数据库中是否存在关系类可能非常繁琐。 本文提供了一种替代方法:使用 ArcPy 确定工作空间内所有地理数据库中是否存在关系类。

过程

  1. 导入所需的模块。
import arcpy from arcpy import env
  1. 指定所需工作空间。
workspace = env.workspace = r"<workspace_location>"
  1. 创建一个函数以在指定工作空间中查找关系类。
def detectRelationship(): rc_list = [c.name for c in arcpy.Describe(workspace).children if c.datatype == "RelationshipClass"] rc_list # List the names, origin, and destination of the relationship class for rc in rc_list: rc_path = workspace + "\\" + rc des_rc = arcpy.Describe(rc_path) origin = des_rc.originClassNames destination = des_rc.destinationClassNames print ("Relationship Class: %s \n Origin: %s \n Desintation: %s" %(rc, origin, destination))
  1. 调用该函数,如果存在关系类,则返回结果。
detectRelationship()

以下代码块和图像显示了完整脚本和结果:

import arcpy from arcpy import env workspace = env.workspace = r"C:\Users\USER\Desktop\Test_case" def detectRelationship(): rc_list = [c.name for c in arcpy.Describe(workspace).children if c.datatype == "RelationshipClass"] rc_list for rc in rc_list: rc_path = workspace + "\\" + rc des_rc = arcpy.Describe(rc_path) origin = des_rc.originClassNames destination = des_rc.destinationClassNames print ("Relationship Class: %s \n Origin: %s \n Desintation: %s" %(rc, origin, destination)) detectRelationship()
示例结果的图像

文章 ID: 000023985

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

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

下载 Esri 支持应用程序

相关信息

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

获取来自 ArcGIS 专家的帮助

联系技术支持部门

下载 Esri 支持应用程序

转至下载选项