Skip to content

6.2.2 Rules of the Configuration Model

Rules in the root model "Car"

Rule 1: For a Car Configurator the Construction must be "Car".

json
{
  "constraintId": "Rule1:TheConstructionIsCar",
  "textualConstraint": "shared::TechnicalShared::Construction.Car"
}

Rule 2: IF CarSize Big THEN CO2 Emissions > 200.

json
{
  "constraintId": "Rule2:ForBigSizeCO2EmissionGreaterThan200",
  "textualConstraint": "CarSize.Big -> CO2Emissions > 200"
}

Rule 3: IF CarSize Small THEN NOT Colour White.

json
{
  "constraintId": "Rule3:BigSizeNotInWhite",
  "textualConstraint": "CarSize.Small -> !Automobile::Colour.White"
}

Rules in the Shared Configuration Model "TechnicalShared"

Rule 4: IF Size 18 OR Size 28 THEN NOT Usage Winter.

json
{
  "constraintId": "Rule4:RimSizesForWinter",
  "textualConstraint": "(Size.\"18 inch\" OR Size.\"28 inch\") -> !Usage.Winter"
}

Rule 5: IF Size 25 OR Size 28 THEN Construction Truck and vice versa.

json
{
  "constraintId": "Rule5:RimSizesForTruck",
  "textualConstraint": "(Size.\"25 inch\" OR Size.\"28 inch\") <-> Construction.Truck"
}

Rule 6: IF Construction Car THEN NOT Size 25 OR Size 28.

json
{
  "constraintId": "Rule6:RimSizeExclusionsForCar",
  "textualConstraint": "Construction.Car -> !(Size.\"25 inch\" OR Size.\"28 inch\")"
}

Rule 7: IF Construction Truck OR SalesRegion Asia THEN NOT Usage Off road.

json
{
  "constraintId": "Rule7:OffRoadNotForTruckAndForSalesRegionAsia",
  "textualConstraint": "(Construction.Truck OR shared::SalesShared::SalesRegion.Asia)-> !Usage.\"Off road\""
}

Rules in the Component Model "Engine"

Rule 8: IF EngineType Electric THEN NOT FuelTypes.

json
{
  "constraintId": "Rule8:ElectricExcludesAnyFuelType",
  "textualConstraint": "EngineType.Electric -> !FuelType.*"
}

Rule 9: IF Usage Off road THEN NOT EngineType Electric.

json
{
  "constraintId": "Rule9:OffRoadExcludesElectric",
  "textualConstraint": "shared::TechnicalShared::Usage.\"Off road\" -> !EngineType.Electric"
}

Rule 10: IF SalesRegion Asia THEN NOT EngineType Hybrid.

json
{
  "constraintId": "Rule10:HybridNotForAsia",
  "textualConstraint": "shared::SalesShared::SalesRegion.Asia -> !EngineType.Hybrid"
}

Rules in the Component Model "Automobile"

Rule 11: IF Truck THEN NO Petrol.

json
{
  "constraintId": "Rule11:TruckNoPetrol",
  "textualConstraint": "shared::TechnicalShared::Construction.Truck -> !Engine::FuelType.Petrol"
}

Rule 12: IF Power 300 THEN Automatic.

json
{
  "constraintId": "Rule12:BigPowerRequiresAutomaticTransmission",
  "textualConstraint": "Engine::Power.\"300 KW\" -> Transmission::Kind.Automatic"
}

Rule 13: IF 3 Wheels THEN 1 FrontWheel AND 2 BackWheels.

json
{
  "constraintId": "Rule13:3Wheels",
  "textualConstraint": "NumberOfWheels.\"3\" -> FrontWheels::Number.\"1\" AND BackWheels::Number.\"2\""
}

Rule 14: IF 4 Wheels THEN 2 FrontWheels AND 2 BackWheels..

json
{
  "constraintId": "Rule14:4Wheels",
  "textualConstraint": "(NumberOfWheels.4 AND !SpareWheel) -> FrontWheels::Number.\"2\" AND BackWheels::Number.\"2\""
}

Rule 15: IF Electric THEN NOT Component Transmission.

json
{
  "constraintId": "Rule15:ElectricCarWithoutTransmission",
  "textualConstraint": "Engine::EngineType.Electric -> !Transmission"
}

Rule 16: IF Tubeless == true THEN NOT Component SpareWheel.

json
{
  "constraintId": "Rule16:TubelessTiresWithoutSpereWheel",
  "textualConstraint": "shared::TechnicalShared::Tubeless OR SpareWheel"
}

Rule 17: IF Off road THEN 2 SpareWheels.

json
{
  "constraintId": "Rule17:UsageOffroadRequiresTwoSpereWheels",
  "textualConstraint": "shared::TechnicalShared::Usage.\"Off road\" -> SpareWheel::Number.\"2\" AND FrontWheels::Number.\"2\" AND BackWheels::Number.\"2\""
}

Rule 18: IF SalesRegion China THEN NOT Colour White AND NOT EngineType Hybrid.

json
{
  "constraintId": "Rule18:ColourWhiteNotForChina",
  "textualConstraint": "shared::SalesShared::SalesRegion.China -> !Colour.White AND !Engine::EngineType.Hybrid"
}

Rule 19: IF SalesRegion Africa THEN NOT Usage Winter AND NOT EngineType Hybrid AND Component SpareWheel required.

json
{
  "constraintId": "Rule19:ComplexSalesRuleAfrica",
  "textualConstraint": "shared::SalesShared::SalesRegion.Africa -> !shared::TechnicalShared::Usage.Winter AND !Engine::EngineType.Hybrid AND SpareWheel == true"
}

Rules in the Component Model "Wheel"

Rule 20: IF Car AND Rim-Material Steel THEN NOT Tire-MaxSpeed 200.

json
{
  "constraintId": "Rule20:RimMaterialAndMaximumSpeedForCar",
  "textualConstraint": "shared::TechnicalShared::Construction.Car AND Rim::Material.Steel -> !Tire::MaximumSpeed.\"200\""
}

Rule 21: IF Usage Off road THEN NOT Rim-Material Alu AND NOT Tire Tubeless.

json
{
  "constraintId": "Rule21:OffRoadRimMaterialAndTireKind",
  "textualConstraint": "shared::TechnicalShared::Usage.\"Off road\" -> !Rim::Material.Alu AND Tire::Tubeless == false"
}

Rules in the Component Model "Rim"

Rule 22: IF Rim-Material Steel THEN NOT Style CA1 OR Style TRX1.

json
{
  "constraintId": "Rule22:MaterialStyleExclusion",
  "textualConstraint": "Material.Steel -> !(Style.CA1 OR Style.TRX1)"
}

Rule 23: IF Construction Car THEN NOT Style TRX1 OR Style TRX2.

json
{
  "constraintId": "Rule23:ConstructionRimExclusion",
  "textualConstraint": "shared::TechnicalShared::Construction.Car -> !(Style.TRX1 OR Style.TRX2)"
}

Rules in the Component Model "Tire"

Rule 24: IF Construction Car THEN NOT MaxSpeed 100.

json
{
  "constraintId": "Rule24:MaximumSpeedForCarNot100",
  "textualConstraint": "shared::TechnicalShared::Construction.Car -> !MaximumSpeed.\"100\""
}

Rule 25: IF SalesRegion Africa THEN NOT Tire-MaxSpeed 200.

json
{
  "constraintId": "Rule25:MaximumSpeed200NotForAfrica",
  "textualConstraint": "shared::SalesShared::SalesRegion.Africa -> !MaximumSpeed.\"200\""
}