Help with Python Script for Autocad

hello @shahid.shaikh_C3D
a simple example to create a circle in Civil3D from a Dynamo Geometry

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

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

# 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 Autodesk.DesignScript.Geometry as DS

# 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
center = IN[0]
#create a proto Geometry
circleDs = DS.Circle.ByCenterPointRadius(center, 50)
with adoc.LockDocument():
    with adoc.Database as db:

        with db.TransactionManager.StartTransaction() as t:
            # Place your code below
            # 
            #
            acBlkTbl = t.GetObject(db.BlockTableId, OpenMode.ForRead)
            acBlkTblRec = t.GetObject(acBlkTbl[BlockTableRecord.ModelSpace],  OpenMode.ForWrite)
            acCirc = Circle()
            acCirc.Center = Point3d(circleDs.CenterPoint.X, circleDs.CenterPoint.Y, circleDs.CenterPoint.Z)
            acCirc.Radius = circleDs.Radius
            acBlkTblRec.AppendEntity(acCirc)
            t.AddNewlyCreatedDBObject(acCirc, True)
            # Commit before end transaction
            t.Commit()
            

# Assign your output to the OUT variable.
OUT = circleDs
1 Like