getDesignPoints(ObjectId idAlign, ref List <POI> varPOI, string strSide) { List <POI> varPOI_PNTs = new List <POI>(); POI vPOI_PNT = default(POI); vPOI_PNT = new POI(); vPOI_PNT.Desc0 = "NOTHING"; varPOI_PNTs.Add(vPOI_PNT); double dblStation = 0; double dblOffset = 0; double dblToleranceLength = 0; short i = 0; short k = 0; bool boolAdd = false; CogoPointCollection objCogoPnts = BaseObjs._civDoc.CogoPoints; k = -1; foreach (ObjectId idCogoPnt in objCogoPnts) { CogoPoint objCogoPnt = (CogoPoint)idCogoPnt.getEnt(); boolAdd = false; try { try { idAlign.getAlignStaOffset(objCogoPnt.Location, ref dblStation, ref dblOffset); } catch (Autodesk.Civil.PointNotOnEntityException) { dblStation = 0.0; } if (strSide == "LEFT") { if (dblOffset > dblToleranceLength * -1 & dblOffset < 0) { boolAdd = true; } } else if (strSide == "RIGHT") { if (dblOffset > 0 & dblOffset < dblToleranceLength) { boolAdd = true; } } else if (strSide == "BOTH") { if (System.Math.Abs(dblOffset) < dblToleranceLength) { boolAdd = true; } } } catch (Autodesk.AutoCAD.Runtime.Exception ex) { boolAdd = false; Debug.Print(ex.ToString()); } if (boolAdd == true) { vPOI_PNT = new POI(); vPOI_PNT.Station = Base_Tools45.Math.roundDown3(dblStation); vPOI_PNT.PntNum = objCogoPnt.PointNumber.ToString(); vPOI_PNT.Elevation = System.Math.Round(objCogoPnt.Elevation, 3); try { idAlign.getAlignStaOffset(objCogoPnt.Location, ref dblStation, ref dblOffset); } catch (Autodesk.Civil.PointNotOnEntityException) { dblStation = 0.0; } vPOI_PNT.OFFSET = System.Math.Round(dblOffset, 2); vPOI_PNT.Desc0 = string.Format("{0} {1}", varPOI_PNTs[k].OFFSET, varPOI_PNTs[k].Elevation); vPOI_PNT.PntSource = "GCAL"; varPOI_PNTs.Add(vPOI_PNT); } objCogoPnt.Dispose(); } dynamic stations = from data in varPOI_PNTs orderby data.Station select data; List <POI> p = new List <POI>(); foreach (var d in stations) { p.Add(d); } varPOI_PNTs = p; Misc.removeDuplicatePoints(ref varPOI_PNTs); if (varPOI_PNTs.Count > 0) { for (i = 0; i < varPOI_PNTs.Count; i++) { varPOI.Add(varPOI_PNTs[i]); } } dynamic staPOI = from data in varPOI orderby data.Station select data; p = new List <POI>(); foreach (var d in staPOI) { p.Add(d); } if (varPOI.Count > 0) { return(true); } else { return(false); } }