Use Civil3DToolkit nodes in python

Hello everyone,
I need to use the Civil3DToolkit nodes in my python code.
I did this and got error, can anyone please tell me what is wrong with my package import codes?

Load the Python Standard and DesignScript Libraries

import sys
import clr

Load Civil3DToolkit

pyt_path = r’C:\Users\hle\AppData\Roaming\Autodesk\C3D 2020\Dynamo\2.4\packages\Civil3DToolkit\bin’
sys.path.append(pyt_path)

clr.AddReference(‘Civil3DToolkit’)
import Civil3DToolkit

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.

surfaces = IN[0]
solide =
adoc = Application.DocumentManager.MdiActiveDocument
editor = adoc.Editor

with adoc.LockDocument():
with adoc.Database as db:

    with db.TransactionManager.StartTransaction() as t:
       
        for s in surfaces:
        	solide.append(s.TinSurfaceExtensions.CreateSolids(15, 0, ""))

        # Commit before end transaction
        t.Commit()
        pass

Assign your output to the OUT variable.

OUT = solide

clr.AddReference('AutoCADNodes')
clr.AddReference('Civil3DNodes')   
clr.AddReference('Autodesk.Civil3DToolkit')  // import the assembly
import Autodesk.AutoCAD.DynamoNodes as DA  // assign alias for AutoCAD nodes
import Autodesk.Civil.DynamoNodes as DC  // assign alias for Civil 3D nodes

Perfect, I just need to add two more lines and it works:

clr.AddReference(‘AutoCADNodes’)
clr.AddReference(‘Civil3DNodes’)
clr.AddReference(‘Autodesk.Civil3DToolkit’) # import the assembly
import Autodesk.AutoCAD.DynamoNodes as DA # assign alias for AutoCAD nodes
import Autodesk.Civil.DynamoNodes as DC # assign alias for Civil 3D nodes

from Autodesk.AutoCAD.DynamoNodes import *
from Autodesk.Civil.DynamoNodes import *

Thank you Paolo!

2 Likes