Community
the property "item" about DesignSpeed Collection doesn´t appear but it exists:
Then, How I can obtain a List<T> with this collection?
I want only list with all DesignSpeeds from all alignments in only list.
public static List<toolsC3D.VelocidadesProyecto> GetDesignSpeedsAlineaciones(List<Alignments> lista) { Editor ed = Application.DocumentManager.MdiActiveDocument.Editor; // por si queremos preguntar o responder en la línea de comandos Database db = Application.DocumentManager.MdiActiveDocument.Database; Autodesk.Civil.ApplicationServices.CivilDocument civDoc = default(Autodesk.Civil.ApplicationServices.CivilDocument); civDoc = Autodesk.Civil.ApplicationServices.CivilApplication.ActiveDocument; //obtener el documento de Civil ObjectIdCollection alignColl = civDoc.GetAlignmentIds(); //obtener la colección de alineaciones List<toolsC3D.VelocidadesProyecto> listaVp = new List<toolsC3D.VelocidadesProyecto>(); // instancia de la nueva lista if (alignColl.Count == 0) //alignColl=align collection { return null; } VelocidadesProyecto tramo = default(VelocidadesProyecto); using (Transaction trans = HostApplicationServices.WorkingDatabase.TransactionManager.StartTransaction()) { foreach (ObjectId id in alignColl) // para cada alineación abierta para leer { Alignment alineacion = trans.GetObject(id, OpenMode.ForRead) as Alignment; for(int i=0; i<= alineacion.DesignSpeeds.Count-1;i++) { Alignment align = trans.GetObject(id, OpenMode.ForRead) as Alignment; tramo = new toolsC3D.VelocidadesProyecto(); tramo.Id = alineacion.Id; tramo.NumeroTramo = i+1; // doesn´t work: alineacion.DesignSpeeds.Item(i) listaVp.Add(tramo); } } } return listaVp; }
Thank you
This is OK.
public static List<toolsC3D.VelocidadesProyecto> GetDesignSpeedsAlineaciones() { Editor ed = Application.DocumentManager.MdiActiveDocument.Editor; Database db = Application.DocumentManager.MdiActiveDocument.Database; Autodesk.Civil.ApplicationServices.CivilDocument civDoc = default(Autodesk.Civil.ApplicationServices.CivilDocument); civDoc = Autodesk.Civil.ApplicationServices.CivilApplication.ActiveDocument; ObjectIdCollection alignColl = civDoc.GetAlignmentIds(); List<toolsC3D.VelocidadesProyecto> listaVp = new List<toolsC3D.VelocidadesProyecto>(); if (alignColl.Count == 0) //alignColl=align collection { return null; } VelocidadesProyecto tramo = default(VelocidadesProyecto); using (Transaction trans = HostApplicationServices.WorkingDatabase.TransactionManager.StartTransaction()) { foreach (ObjectId id in alignColl) // para cada alineación abierta para leer { Alignment alineacion = trans.GetObject(id, OpenMode.ForRead) as Alignment; DesignSpeedCollection designcoll = alineacion.DesignSpeeds; foreach (DesignSpeed design in designcoll) { tramo = new toolsC3D.VelocidadesProyecto(); tramo.Id = alineacion.Id; tramo.NumeroTramo = design.SpeedNumber; //numero de tramo tramo.Vp = design.Value; //velocidad proyecto tramo.StartStation = design.Station; // p.k inicial tramo.Description = design.Comment; //descripción listaVp.Add(tramo); } } } return listaVp; }