
import sys
import clr
clr.AddReference('AcMgd')
clr.AddReference('AcCoreMgd')
clr.AddReference('AcDbMgd')
clr.AddReference('AecBaseMgd')
clr.AddReference('AecPropDataMgd')
clr.AddReference('AeccDbMgd')
from Autodesk.AutoCAD.ApplicationServices import *
from Autodesk.AutoCAD.DatabaseServices import *
from Autodesk.AutoCAD.Geometry import *
from Autodesk.AutoCAD.Colors import *
from Autodesk.Civil.DatabaseServices import *
from Autodesk.Civil import *
from Autodesk import *
def extract_basecurve(sampleLines):
output=[]
obj=[]
if not sampleLines:
return
if not isinstance(sampleLines,list):
sampleLines = [sampleLines]
adoc = Application.DocumentManager.MdiActiveDocument
with adoc.LockDocument():
with adoc.Database as db:
with db.TransactionManager.StartTransaction() as t:
for SampleLine in sampleLines:
obj = SampleLine.InternalDBObject
vertices = obj.Vertices
sline = Line()
bt = t.GetObject(db.BlockTableId, OpenMode.ForRead)
btr = t.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite)
sline=Line(Point3d(vertices[0].Location.X,vertices[0].Location.Y,0),Point3d(vertices[2].Location.X,vertices[2].Location.Y,0))
sline.Color = AutoCAD.Colors.Color.FromColorIndex(AutoCAD.Colors.ColorMethod.ByAci,11)
btr.AppendEntity(sline)
t.AddNewlyCreatedDBObject(sline, True)
output.append(sline)
t.Commit()
return output
if IN[0]:
OUT = extract_basecurve(IN[0])
else:
OUT = "NO DATA"
#OUT = extract_basecurve(IN[0])