diff --git a/VectoCommon/VectoCommon/Utils/Validation.cs b/VectoCommon/VectoCommon/Utils/Validation.cs
index 489976cea781baec7061bd47728b799f4fa550eb..860cb375033f47bc1ebcac4f294550bbd3b3b89e 100644
--- a/VectoCommon/VectoCommon/Utils/Validation.cs
+++ b/VectoCommon/VectoCommon/Utils/Validation.cs
@@ -194,8 +194,22 @@ namespace TUGraz.VectoCommon.Utils
 	/// <summary>
 	/// Attribute which validates the Min-Max Range of an SI Object.
 	/// </summary>
+	[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field, AllowMultiple = true)]
 	public class SIRangeAttribute : RangeAttribute
 	{
+		private ExecutionMode? _mode;
+
+		/// <summary>
+		/// Checks the Min-Max Range of SI Objects.
+		/// </summary>
+		/// <param name="minimum">The minimum.</param>
+		/// <param name="maximum">The maximum.</param>
+		/// <param name="mode">if specified the validation is only performed in the corresponding mode</param>
+		public SIRangeAttribute(int minimum, int maximum, ExecutionMode mode) : base(minimum, maximum)
+		{
+			_mode = mode;
+		}
+
 		/// <summary>
 		/// Checks the Min-Max Range of SI Objects.
 		/// </summary>
@@ -208,6 +222,18 @@ namespace TUGraz.VectoCommon.Utils
 		/// </summary>
 		/// <param name="minimum">The minimum.</param>
 		/// <param name="maximum">The maximum.</param>
+		/// <param name="mode">if specified the validation is only performed in the corresponding mode</param>
+		public SIRangeAttribute(double minimum, double maximum, ExecutionMode mode) : base(minimum, maximum)
+		{
+			_mode = mode;
+		}
+
+		/// <summary>
+		/// Checks the Min-Max Range of SI Objects.
+		/// </summary>
+		/// <param name="minimum">The minimum.</param>
+		/// <param name="maximum">The maximum.</param>
+		/// <param name="mode">if specified the validation is only performed in the corresponding mode</param>
 		public SIRangeAttribute(double minimum, double maximum) : base(minimum, maximum) {}
 
 		/// <summary>
@@ -215,6 +241,18 @@ namespace TUGraz.VectoCommon.Utils
 		/// </summary>
 		/// <param name="minimum">The minimum.</param>
 		/// <param name="maximum">The maximum.</param>
+		/// <param name="mode">if specified the validation is only performed in the corresponding mode</param>
+		public SIRangeAttribute(SI minimum, SI maximum, ExecutionMode mode) : base(minimum.Value(), maximum.Value())
+		{
+			_mode = mode;
+		}
+
+		/// <summary>
+		/// Checks the Min-Max Range of SI Objects.
+		/// </summary>
+		/// <param name="minimum">The minimum.</param>
+		/// <param name="maximum">The maximum.</param>
+		/// <param name="mode">if specified the validation is only performed in the corresponding mode</param>
 		public SIRangeAttribute(SI minimum, SI maximum) : base(minimum.Value(), maximum.Value()) {}
 
 		/// <summary>
@@ -228,7 +266,16 @@ namespace TUGraz.VectoCommon.Utils
 		protected override ValidationResult IsValid(object value, ValidationContext validationContext)
 		{
 			var si = value as SI;
-			return base.IsValid(si != null ? si.Value() : value, validationContext);
+
+			var modeService = validationContext.GetService(typeof(ExecutionMode)) as ExecutionModeServiceContainer;
+			var mode = modeService == null ? (ExecutionMode?)null : modeService.Mode;
+			if (mode == null) {
+				return base.IsValid(si != null ? si.Value() : value, validationContext);
+			}
+			if (_mode == null || (_mode != null && (_mode.Value == mode))) {
+				return base.IsValid(si != null ? si.Value() : value, validationContext);
+			}
+			return ValidationResult.Success;
 		}
 	}
 
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Data/VehicleData.cs b/VectoCore/VectoCore/Models/SimulationComponent/Data/VehicleData.cs
index 4c6e6caed13a61e94fef99c578f30eaa96ad9e02..70cb17b7a150a778cc79e39de1a3a5f1186e17e4 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Data/VehicleData.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Data/VehicleData.cs
@@ -85,7 +85,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
 		/// <summary>
 		/// The Gross Vehicle Weight of the Vehicle.
 		/// </summary>
-		[Required, SIRange(3500, 40000)]
+		[Required, SIRange(3500, 40000, ExecutionMode.Declaration), SIRange(0, 1000000, ExecutionMode.Engineering)]
 		public Kilogram GrossVehicleWeight { get; internal set; }
 
 		/// <summary>