Recommend a change to the default Civil 3D Python Script - traceback

To avod AutoCAD Fatal Error and reveal the transaction error in detail, import traceback and include the try, except, traceback example in the commented out area in the transaction

# Load the Python Standard and DesignScript Libraries
import sys
import clr
import traceback

# Add Assemblies for AutoCAD and Civil3D
clr.AddReference('AcMgd')
clr.AddReference('AcCoreMgd')
clr.AddReference('AcDbMgd')
clr.AddReference('AecBaseMgd')
clr.AddReference('AecPropDataMgd')
clr.AddReference('AeccDbMgd')

# Import references from AutoCAD
from Autodesk.AutoCAD.Runtime import *
from Autodesk.AutoCAD.ApplicationServices import *
from Autodesk.AutoCAD.EditorInput import *
from Autodesk.AutoCAD.DatabaseServices import *
from Autodesk.AutoCAD.Geometry import *

# Import references from Civil3D
from Autodesk.Civil.ApplicationServices import *
from Autodesk.Civil.DatabaseServices import *

# The inputs to this node will be stored as a list in the IN variables.
dataEnteringNode = IN

adoc = Application.DocumentManager.MdiActiveDocument
editor = adoc.Editor

with adoc.LockDocument():
    with adoc.Database as db:
        with db.TransactionManager.StartTransaction() as t:
            ## Place your code below
            # 
            # try:
            #
            # except: 
            #   error = traceback.format_exc()
            #
            ## Commit before end transaction
            # t.Commit()
            pass

# Assign your output to the OUT variable.
OUT = 0

1 Like

You can do it yourself :+1: