private static void processWater(string nameLayer, ObjectId idPolyGuideline, BlockTableRecord ms, ref List <POI> varPOI, out ObjectId idAlign) { string nameAlign = Align.getAlignName(nameLayer); Alignment align = Align.addAlignmentFromPoly(nameAlign, nameLayer, idPolyGuideline, "Standard", "Standard", true); fStake.ACTIVEALIGN = align; idAlign = align.ObjectId; fStake.objectID = idAlign; Stake_GetCardinals.getCardinals_Horizontal(idAlign, ref varPOI); Stake_GetNestedObjects.getNestedObjects(idAlign, ref varPOI, "CNTL"); Stake_GetCardinals.getCrossingAligns(idAlign, ref varPOI); varPOI = Stake_ModifyStaking.modifyStaking(varPOI); fStake.POI_ORG = varPOI; Stake_GetCardinals.checkBegAndEndStations(idAlign, ref varPOI); Stake_AddProfile.makeProfile(idAlign, varPOI, "STAKE", "ByLayout", false); Stake_GetAnglePoints.getAnglePoints(idAlign, ref varPOI);//IDENTIFY ANGLE POINTS - CHECK IF CLOSED var sortSta = from s in varPOI orderby s.Station ascending select s; List <POI> poiTmp = new List <POI>(); foreach (var s in sortSta) { poiTmp.Add(s); } varPOI = poiTmp; Stake_DuplicateStations.resolveDuplicateStations(ref varPOI); Stake_GetSurfaceElev.getSurfaceElevations(idAlign, ref varPOI);//ALL ELEVATIONS COME FROM SURFACE Stake_AddProfile.makeProfile(idAlign, varPOI, "STAKE", "ByLayout", true); if (varPOI[0].isClosed) { Stake_GetAnglePoints.addEndElev(idAlign, ref varPOI, "CPNT"); } Stake_UpdateProfile.updateProfile(idAlign, varPOI, "STAKE", true, "STAKE"); fStake.POI_CALC = varPOI; }