操作方法
可以使用 ArcGIS Desktop Standard 或 Advanced 许可在地理数据库上创建关系类。 关系类用于管理要素类与表中的对象之间的关联。 由于工作空间中可能存在多个地理数据库,因此手动检查地理数据库中是否存在关系类可能非常繁琐。 本文提供了一种替代方法:使用 ArcPy 确定工作空间内所有地理数据库中是否存在关系类。
import arcpy from arcpy import env
workspace = env.workspace = r"<workspace_location>"
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))
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()
获取来自 ArcGIS 专家的帮助
下载 Esri 支持应用程序