public void SetDefaultValuesArtPlan(AreaType area, int artClass)
 {
     FDOTplanning_ParmRanges ParmRanges          = new FDOTplanning_ParmRanges();
     int                  _lengthFt              = ParmRanges.SegLengthDefault[artClass - 1];//program starts with Class 1 (index 0)
     long                 _AADT                  = ParmRanges.AADTDefault[(int)area];
     float                _ddhv                  = ParmRanges.AADTDefault[(int)area] * ParmRanges.KfactDefault[(int)area] * ParmRanges.DfactDefault[(int)area];
     int                  _numLanes              = ParmRanges.NumThruLanesDefault[(int)area];
     int                  _postSpeedMPH          = ParmRanges.PostedSpeedDefault[artClass - 1];
     int                  _freeFlowSpeedMPH      = ParmRanges.FFSpeedDefault[artClass - 1];
     MedianType           _medType               = ParmRanges.MedianDefault[(int)area];
     bool                 _onStreetParkingExists = false;
     ParkingActivityLevel _parkingActivity       = ParkingActivityLevel.NotApplicable;
 }
        /// <summary>
        /// Returns the threshold delay of the arterial.
        /// </summary>
        /// <param name="Area"></param>
        /// <param name="ArtTravTimeSeconds"></param>
        /// <param name="ArtLengthMiles"></param>
        /// <returns></returns>
        public static float ThresholdDelay(AreaType Area, float ArtTravTimeSeconds, float ArtLengthMiles)
        {
            FDOTplanning_ParmRanges ParmRanges = new FDOTplanning_ParmRanges();
            float ThreshDelay;

            if (Area == AreaType.RuralDeveloped) //LOS C threshold from HCM2000 Exhibit 15-2
            {
                ThreshDelay = ArtTravTimeSeconds - (ArtLengthMiles / ParmRanges.ThreshSpeed[3] * 3600);
            }
            else    //other area types use LOS D threshold
            {
                ThreshDelay = ArtTravTimeSeconds - (ArtLengthMiles / ParmRanges.ThreshSpeed[4] * 3600);
            }

            if (ThreshDelay < 0)
            {
                ThreshDelay = 0;
            }

            return(ThreshDelay);
        }
        public static void SetDefaultValues() // Arterial
        {
            FDOTplanning_ParmRanges ParmRanges = new FDOTplanning_ParmRanges();

            ParmRanges.CycleLengthDefault[0, 1] = 150;  //Large Urbanized, Class 1
            ParmRanges.CycleLengthDefault[0, 2] = 120;  //Large Urbanized, Class 2
            ParmRanges.CycleLengthDefault[1, 1] = 150;  //Other Urbanized, Class 1
            ParmRanges.CycleLengthDefault[1, 2] = 120;  //Other Urbanized, Class 2
            ParmRanges.CycleLengthDefault[2, 1] = 120;  //Transitioning, Class 1
            ParmRanges.CycleLengthDefault[2, 2] = 120;  //Transitioning, Class 2
            ParmRanges.CycleLengthDefault[3, 1] = 90;   //Rural Developed, Class 1
            ParmRanges.CycleLengthDefault[3, 2] = 90;   //Rural Developed, Class 2

            //signal control type defaults
            //ParmRanges.SigControlDefault[0, 1] = SigControlType.CoordinatedActuated;  //Large Urbanized, Class 1
            //ParmRanges.SigControlDefault[0, 2] = SigControlType.Pretimed;             //Large Urbanized, Class 2
            //ParmRanges.SigControlDefault[1, 1] = SigControlType.CoordinatedActuated;  //Other Urbanized, Class 1
            //ParmRanges.SigControlDefault[1, 2] = SigControlType.Pretimed;             //Other Urbanized, Class 2
            //ParmRanges.SigControlDefault[2, 1] = SigControlType.CoordinatedActuated;  //Transitioning, Class 1
            //ParmRanges.SigControlDefault[2, 2] = SigControlType.CoordinatedActuated;  //Transitioning, Class 2
            //ParmRanges.SigControlDefault[3, 1] = SigControlType.FullyActuated;        //Rural Developed, Class 1
            //ParmRanges.SigControlDefault[3, 2] = SigControlType.CoordinatedActuated;  //Rural Developed, Class 2

            ParmRanges.SigControlDefault[1] = SigControlType.FullyActuated;       //Class 1
            ParmRanges.SigControlDefault[2] = SigControlType.CoordinatedActuated; //Class 2

            //signal arrival type defaults
            //ParmRanges.ArrTypeDefault[0, 1] = 4;  //Large Urbanized, Class 1
            //ParmRanges.ArrTypeDefault[0, 2] = 4;  //Class 2
            //ParmRanges.ArrTypeDefault[1, 1] = 4;  //Other Urbanized, Class 1
            //ParmRanges.ArrTypeDefault[1, 2] = 4;  //Class 2
            //ParmRanges.ArrTypeDefault[2, 1] = 4;  //Transitioning, Class 1
            //ParmRanges.ArrTypeDefault[2, 2] = 4;  //Class 2
            //ParmRanges.ArrTypeDefault[3, 1] = 3;  //Rural Developed, Class 1
            //ParmRanges.ArrTypeDefault[3, 2] = 4;  //Class 2
        }