Having an issue running the following script. It seems to work when I print the values of the functions, but I think? my problem is that I don't know how to assign those functions (or variables in this case) to the geoprocessing tool correctly. Thoughts?
I have ran the CAD drawing manually through Pro 2.5 and it works, so the I don't see an issue being with the data.
Error
Traceback (most recent call last):
File "<string>", line 39, in <module>
File "c:\program files\arcgis\pro\Resources\arcpy\arcpy\conversion.py", line 1123, in CADToGeodatabase
raise e
File "c:\program files\arcgis\pro\Resources\arcpy\arcpy\conversion.py", line 1120, in CADToGeodatabase
retval = convertArcObjectToPythonObject(gp.CADToGeodatabase_conversion(*gp_fixargs((input_cad_datasets, out_gdb_path, out_dataset_name, reference_scale, spatial_reference), True)))
File "c:\program files\arcgis\pro\Resources\arcpy\arcpy\geoprocessing\_base.py", line 511, in <lambda>
return lambda *args: val(*gp_fixargs(args, True))
RuntimeError: Object: Error in executing tool
import arcpy
import os
#Temp/Processing GDB
working = r"C:\Users\a\Documents\ArcGIS\Projects\DGN_Import\W_DGN_Import.gdb"
#Final/Production GDB
final = r"C:\Users\a\Documents\ArcGIS\Projects\DGN_Import\DGN_Import.gdb"
#CAD Dataset
cad = r"C:\Users\a\Documents\ArcGIS\Projects\DGN_Import\JODKH-BNDY-TOPO_SPILWest1202.dgn"
#CoordinateSystems
SPCEast = "NAD_1983_2011_StatePlane_Illinois_East_FIPS_1201_Ft_US"
SPCWest = "NAD_1983_2011_StatePlane_Illinois_West_FIPS_1202_Ft_US"
#OutputName
def opn(x):
folder = os.path.splitext(os.path.basename(x))[0]
return str(folder.rsplit('_',1)[0])
#If statement to extract Coordinate System
def cs(x):
folder = os.path.splitext(os.path.basename(x))[0]
return str(folder.split('_',2)[1])
#Match extraction to identify input coordinate system
def csm(y):
if y is 'SPILEast1201':
return SPCEast
else:
return SPCWest
#Execute Functions
outputname = opn(cad)
coordsys = cs(cad)
coordsysmatch = csm(cs)
#CAD to Geodatabase; use SPC from csm
arcpy.conversion.CADToGeodatabase([cad], [working], [outputname], '1000', [coordsysmatch])
Solved! Go to Solution.
Are you looking to build this into a bigger tool (e.g. process more than one dataset)?
The documentation CAD To Geodatabase (Conversion)—ArcGIS Pro | Documentation shows that the only argument supplied as a list is the list of CAD files.
Try removing the other lists, like this:
arcpy.conversion.CADToGeodatabase([cad], working, outputname, '1000', coordsysmatch)
Are you looking to build this into a bigger tool (e.g. process more than one dataset)?
The documentation CAD To Geodatabase (Conversion)—ArcGIS Pro | Documentation shows that the only argument supplied as a list is the list of CAD files.
Try removing the other lists, like this:
arcpy.conversion.CADToGeodatabase([cad], working, outputname, '1000', coordsysmatch)
You were correct David. What I thought the [] were used for was incorrect.
Thanks!
Also your feature dataset name is probably invalid as it contains hyphens - JODKH-BNDY-TOPO.
You will probably need to do a .replace("-","_") or similar.