[GIS] create relationship class with stand alone python script

arcpyerror-000622error-000628relationship-class

I have created a relationship class in arc catalog using the same arguments I'm using below, however if I try and create it using the script below I get:

arcgisscripting.ExecuteError: ERROR 000622: Failed to execute (Create
Relationship Class). Parameters are not valid. ERROR 000628: Cannot
set input into parameter attributed.

Following is the script I'm using:

import arcpy
from arcpy import env

env.workspace = "C:\a.gdb"

origin_table = "a.gdb\Trail_meta"
destination_table = "a.gdb\trails_mfg"
out_relationship_class = "a.gdb\t3meta"
relationship_type = "SIMPLE"
forward_label = "Attributes from meta"
backward_label = "Attributes from trail"
message_direction = "NONE"
cardinality = "ONE_TO_MANY"
attributed = "NONE"
origin_primary_key = "OBJECTID"
origin_foreign_key = "TRAIL_NAME"

arcpy.CreateRelationshipClass_management(origin_table,destination_table,out_relationship_class,forward_label,backward_label,message_direction,cardinality,attributed,origin_primary_key,origin_foreign_key)

Best Answer

Since you're setting your environment variable env.workspace, I think you may be misleading the tool by re-stating the name of the database in your variables: origin_table,destination_table, and relationship_type.

What the tool sees this:

origin_table = "a.gdb\a.gdb\Trail_meta"
destination_table = "a.gdb\a.gdb\trails_mfg"
out_relationship_class = "a.gdb\a.gdb\t3meta"

Redefine your variables to this:

origin_table = "Trail_meta"
destination_table = "trails_mfg"
out_relationship_class = "t3meta"

Also, it looks like all you want to import is the env module from arcpy, you can do that by simply using the from arcpy import env command instead of importing the entire arcpy module first. This may save you a bit of time when running the script.

Related Question