# 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 * from Autodesk.DesignScript.Geometry import Point # 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 cdoc = CivilApplication.ActiveDocument run = True # Get alignments and verify input alignIDs = cdoc.GetAlignmentIds() alNames = [] for item in alignIDs: alNames.append(item.Name) if IN[0] in alNames: index = alNames.index(IN[0]) alignID = alignIDs[index] else: run = False OUT = False,False,False # Get groupnaems if run: with Application.DocumentManager.MdiActiveDocument.Database.TransactionManager.StartTransaction() as ts: Alignment = ts.GetObject(alignID, OpenMode.ForRead) slGroupIDs = Alignment.GetSampleLineGroupIds() slGroupNames = [] for item in slGroupIDs: slGroupNames.append(item.Name) if IN[1] in slGroupNames: index = slGroupNames.index(IN[1]) slGroupID = slGroupIDs[index] else: run = False OUT = False,False,False if run: with Application.DocumentManager.MdiActiveDocument.Database.TransactionManager.StartTransaction() as ts: Alignment = ts.GetObject(alignID, OpenMode.ForRead) slGroupID = Alignment.GetSampleLineGroupIds()[0] slGroup = ts.GetObject(slGroupID, OpenMode.ForRead) slinesID = slGroup.GetSampleLineIds() #sline = ts.GetObject(slineID, OpenMode.ForRead) slNames = [] slStations = [] slVertices = [] for item in slinesID: slNames.append(item.Name) slStations.append(item.Station) points = [] for Vertex in item.Vertices: points.append([Vertex.Location[0],Vertex.Location[1]]) slVertices.append(points) # Assign your output to the OUT variable. OUT = slNames,slStations,slVertices