/* file: dimensions_for_si_unit.swift 	 generated: Mon Jan  3 16:32:52 2022 */

/* This file was generated by the EXPRESS to Swift translator "exp2swift", 
  derived from STEPcode (formerly NIST's SCL).
 exp2swift version: v.1.0.1, derived from stepcode v0.8 as of 2019/11/23 
 WARNING: You probably don't want to edit it since your modifications 
  will be lost if exp2swift is used to regenerate it.
 */

 
import SwiftSDAIcore

extension AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF {
//MARK: -FUNCTION DEFINITION in EXPRESS
/*

  FUNCTION dimensions_for_si_unit(
               n : si_unit_name
           ) : dimensional_exponents;
    CASE n OF
      metre                       :         RETURN( dimensional_exponents( 1, 0, 0, 0, 0, 0, 0 ) );
      gram                        :         RETURN( dimensional_exponents( 0, 1, 0, 0, 0, 0, 0 ) );
      second                      :         RETURN( dimensional_exponents( 0, 0, 1, 0, 0, 0, 0 ) );
      ampere                      :         RETURN( dimensional_exponents( 0, 0, 0, 1, 0, 0, 0 ) );
      kelvin                      :         RETURN( dimensional_exponents( 0, 0, 0, 0, 1, 0, 0 ) );
      mole                        :         RETURN( dimensional_exponents( 0, 0, 0, 0, 0, 1, 0 ) );
      candela                     :         RETURN( dimensional_exponents( 0, 0, 0, 0, 0, 0, 1 ) );
      radian                      :         RETURN( dimensional_exponents( 0, 0, 0, 0, 0, 0, 0 ) );
      steradian                   :         RETURN( dimensional_exponents( 0, 0, 0, 0, 0, 0, 0 ) );
      hertz                       :         RETURN( dimensional_exponents( 0, 0, -1, 0, 0, 0, 0 ) );
      newton                      :         RETURN( dimensional_exponents( 1, 1, -2, 0, 0, 0, 0 ) );
      pascal                      :         RETURN( dimensional_exponents( -1, 1, -2, 0, 0, 0, 0 ) );
      joule                       :         RETURN( dimensional_exponents( 2, 1, -2, 0, 0, 0, 0 ) );
      watt                        :         RETURN( dimensional_exponents( 2, 1, -3, 0, 0, 0, 0 ) );
      coulomb                     :         RETURN( dimensional_exponents( 0, 0, 1, 1, 0, 0, 0 ) );
      volt                        :         RETURN( dimensional_exponents( 2, 1, -3, -1, 0, 0, 0 ) );
      farad                       :         RETURN( dimensional_exponents( -2, -1, 4, 2, 0, 0, 0 ) );
      ohm                         :         RETURN( dimensional_exponents( 2, 1, -3, -2, 0, 0, 0 ) );
      siemens                     :         RETURN( dimensional_exponents( -2, -1, 3, 2, 0, 0, 0 ) );
      weber                       :         RETURN( dimensional_exponents( 2, 1, -2, -1, 0, 0, 0 ) );
      tesla                       :         RETURN( dimensional_exponents( 0, 1, -2, -1, 0, 0, 0 ) );
      henry                       :         RETURN( dimensional_exponents( 2, 1, -2, -2, 0, 0, 0 ) );
      degree_celsius              :         RETURN( dimensional_exponents( 0, 0, 0, 0, 1, 0, 0 ) );
      lumen                       :         RETURN( dimensional_exponents( 0, 0, 0, 0, 0, 0, 1 ) );
      lux                         :         RETURN( dimensional_exponents( -2, 0, 0, 0, 0, 0, 1 ) );
      becquerel                   :         RETURN( dimensional_exponents( 0, 0, -1, 0, 0, 0, 0 ) );
      gray                        :         RETURN( dimensional_exponents( 2, 0, -2, 0, 0, 0, 0 ) );
      sievert                     :         RETURN( dimensional_exponents( 2, 0, -2, 0, 0, 0, 0 ) );
      OTHERWISE                   :         RETURN( ? );
    END_CASE;

  END_FUNCTION; -- dimensions_for_si_unit (line:38497 file:ap242ed2_mim_lf_v1.101.TY.exp)

*/

  public static 
  func DIMENSIONS_FOR_SI_UNIT(_ N: nSI_UNIT_NAME? ) 
    -> eDIMENSIONAL_EXPONENTS? {

    // CACHE LOOKUP
    let _params = SDAI.ParameterList( N )
    if case .available(let _cached_value) = _dimensions_for_si_unit__cache.cachedValue(params: _params) {
      return _cached_value as? eDIMENSIONAL_EXPONENTS
    }

    var N = N; SDAI.TOUCH(var: &N)

    if let selector = N {
      switch selector {
      case METRE:
        
        let _TEMP1 = _dimensional_exponents(
          LENGTH_EXPONENT: SDAI.UNWRAP(SDAI.REAL(1.0000000000e+00)), 
          MASS_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          TIME_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          ELECTRIC_CURRENT_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          THERMODYNAMIC_TEMPERATURE_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          AMOUNT_OF_SUBSTANCE_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          LUMINOUS_INTENSITY_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)))
        return _dimensions_for_si_unit__cache.updateCache(params: _params, value: eDIMENSIONAL_EXPONENTS(/*partial entity*/
          _TEMP1))

      case GRAM:
        
        let _TEMP2 = _dimensional_exponents(
          LENGTH_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          MASS_EXPONENT: SDAI.UNWRAP(SDAI.REAL(1.0000000000e+00)), 
          TIME_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          ELECTRIC_CURRENT_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          THERMODYNAMIC_TEMPERATURE_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          AMOUNT_OF_SUBSTANCE_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          LUMINOUS_INTENSITY_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)))
        return _dimensions_for_si_unit__cache.updateCache(params: _params, value: eDIMENSIONAL_EXPONENTS(/*partial entity*/
          _TEMP2))

      case SECOND:
        
        let _TEMP3 = _dimensional_exponents(
          LENGTH_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          MASS_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          TIME_EXPONENT: SDAI.UNWRAP(SDAI.REAL(1.0000000000e+00)), 
          ELECTRIC_CURRENT_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          THERMODYNAMIC_TEMPERATURE_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          AMOUNT_OF_SUBSTANCE_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          LUMINOUS_INTENSITY_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)))
        return _dimensions_for_si_unit__cache.updateCache(params: _params, value: eDIMENSIONAL_EXPONENTS(/*partial entity*/
          _TEMP3))

      case AMPERE:
        
        let _TEMP4 = _dimensional_exponents(
          LENGTH_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          MASS_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          TIME_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          ELECTRIC_CURRENT_EXPONENT: SDAI.UNWRAP(SDAI.REAL(1.0000000000e+00)), 
          THERMODYNAMIC_TEMPERATURE_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          AMOUNT_OF_SUBSTANCE_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          LUMINOUS_INTENSITY_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)))
        return _dimensions_for_si_unit__cache.updateCache(params: _params, value: eDIMENSIONAL_EXPONENTS(/*partial entity*/
          _TEMP4))

      case KELVIN:
        
        let _TEMP5 = _dimensional_exponents(
          LENGTH_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          MASS_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          TIME_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          ELECTRIC_CURRENT_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          THERMODYNAMIC_TEMPERATURE_EXPONENT: SDAI.UNWRAP(SDAI.REAL(1.0000000000e+00)), 
          AMOUNT_OF_SUBSTANCE_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          LUMINOUS_INTENSITY_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)))
        return _dimensions_for_si_unit__cache.updateCache(params: _params, value: eDIMENSIONAL_EXPONENTS(/*partial entity*/
          _TEMP5))

      case MOLE:
        
        let _TEMP6 = _dimensional_exponents(
          LENGTH_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          MASS_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          TIME_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          ELECTRIC_CURRENT_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          THERMODYNAMIC_TEMPERATURE_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          AMOUNT_OF_SUBSTANCE_EXPONENT: SDAI.UNWRAP(SDAI.REAL(1.0000000000e+00)), 
          LUMINOUS_INTENSITY_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)))
        return _dimensions_for_si_unit__cache.updateCache(params: _params, value: eDIMENSIONAL_EXPONENTS(/*partial entity*/
          _TEMP6))

      case CANDELA:
        
        let _TEMP7 = _dimensional_exponents(
          LENGTH_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          MASS_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          TIME_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          ELECTRIC_CURRENT_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          THERMODYNAMIC_TEMPERATURE_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          AMOUNT_OF_SUBSTANCE_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          LUMINOUS_INTENSITY_EXPONENT: SDAI.UNWRAP(SDAI.REAL(1.0000000000e+00)))
        return _dimensions_for_si_unit__cache.updateCache(params: _params, value: eDIMENSIONAL_EXPONENTS(/*partial entity*/
          _TEMP7))

      case RADIAN:
        
        let _TEMP8 = _dimensional_exponents(
          LENGTH_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          MASS_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          TIME_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          ELECTRIC_CURRENT_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          THERMODYNAMIC_TEMPERATURE_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          AMOUNT_OF_SUBSTANCE_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          LUMINOUS_INTENSITY_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)))
        return _dimensions_for_si_unit__cache.updateCache(params: _params, value: eDIMENSIONAL_EXPONENTS(/*partial entity*/
          _TEMP8))

      case STERADIAN:
        
        let _TEMP9 = _dimensional_exponents(
          LENGTH_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          MASS_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          TIME_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          ELECTRIC_CURRENT_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          THERMODYNAMIC_TEMPERATURE_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          AMOUNT_OF_SUBSTANCE_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          LUMINOUS_INTENSITY_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)))
        return _dimensions_for_si_unit__cache.updateCache(params: _params, value: eDIMENSIONAL_EXPONENTS(/*partial entity*/
          _TEMP9))

      case HERTZ:
        
        let _TEMP10 = _dimensional_exponents(
          LENGTH_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          MASS_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          TIME_EXPONENT: SDAI.UNWRAP(SDAI.REAL( -1.0000000000e+00)), 
          ELECTRIC_CURRENT_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          THERMODYNAMIC_TEMPERATURE_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          AMOUNT_OF_SUBSTANCE_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          LUMINOUS_INTENSITY_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)))
        return _dimensions_for_si_unit__cache.updateCache(params: _params, value: eDIMENSIONAL_EXPONENTS(/*partial entity*/
          _TEMP10))

      case NEWTON:
        
        let _TEMP11 = _dimensional_exponents(
          LENGTH_EXPONENT: SDAI.UNWRAP(SDAI.REAL(1.0000000000e+00)), 
          MASS_EXPONENT: SDAI.UNWRAP(SDAI.REAL(1.0000000000e+00)), 
          TIME_EXPONENT: SDAI.UNWRAP(SDAI.REAL( -2.0000000000e+00)), 
          ELECTRIC_CURRENT_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          THERMODYNAMIC_TEMPERATURE_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          AMOUNT_OF_SUBSTANCE_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          LUMINOUS_INTENSITY_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)))
        return _dimensions_for_si_unit__cache.updateCache(params: _params, value: eDIMENSIONAL_EXPONENTS(/*partial entity*/
          _TEMP11))

      case PASCAL:
        
        let _TEMP12 = _dimensional_exponents(
          LENGTH_EXPONENT: SDAI.UNWRAP(SDAI.REAL( -1.0000000000e+00)), 
          MASS_EXPONENT: SDAI.UNWRAP(SDAI.REAL(1.0000000000e+00)), 
          TIME_EXPONENT: SDAI.UNWRAP(SDAI.REAL( -2.0000000000e+00)), 
          ELECTRIC_CURRENT_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          THERMODYNAMIC_TEMPERATURE_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          AMOUNT_OF_SUBSTANCE_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          LUMINOUS_INTENSITY_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)))
        return _dimensions_for_si_unit__cache.updateCache(params: _params, value: eDIMENSIONAL_EXPONENTS(/*partial entity*/
          _TEMP12))

      case JOULE:
        
        let _TEMP13 = _dimensional_exponents(
          LENGTH_EXPONENT: SDAI.UNWRAP(SDAI.REAL(2.0000000000e+00)), 
          MASS_EXPONENT: SDAI.UNWRAP(SDAI.REAL(1.0000000000e+00)), 
          TIME_EXPONENT: SDAI.UNWRAP(SDAI.REAL( -2.0000000000e+00)), 
          ELECTRIC_CURRENT_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          THERMODYNAMIC_TEMPERATURE_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          AMOUNT_OF_SUBSTANCE_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          LUMINOUS_INTENSITY_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)))
        return _dimensions_for_si_unit__cache.updateCache(params: _params, value: eDIMENSIONAL_EXPONENTS(/*partial entity*/
          _TEMP13))

      case WATT:
        
        let _TEMP14 = _dimensional_exponents(
          LENGTH_EXPONENT: SDAI.UNWRAP(SDAI.REAL(2.0000000000e+00)), 
          MASS_EXPONENT: SDAI.UNWRAP(SDAI.REAL(1.0000000000e+00)), 
          TIME_EXPONENT: SDAI.UNWRAP(SDAI.REAL( -3.0000000000e+00)), 
          ELECTRIC_CURRENT_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          THERMODYNAMIC_TEMPERATURE_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          AMOUNT_OF_SUBSTANCE_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          LUMINOUS_INTENSITY_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)))
        return _dimensions_for_si_unit__cache.updateCache(params: _params, value: eDIMENSIONAL_EXPONENTS(/*partial entity*/
          _TEMP14))

      case COULOMB:
        
        let _TEMP15 = _dimensional_exponents(
          LENGTH_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          MASS_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          TIME_EXPONENT: SDAI.UNWRAP(SDAI.REAL(1.0000000000e+00)), 
          ELECTRIC_CURRENT_EXPONENT: SDAI.UNWRAP(SDAI.REAL(1.0000000000e+00)), 
          THERMODYNAMIC_TEMPERATURE_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          AMOUNT_OF_SUBSTANCE_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          LUMINOUS_INTENSITY_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)))
        return _dimensions_for_si_unit__cache.updateCache(params: _params, value: eDIMENSIONAL_EXPONENTS(/*partial entity*/
          _TEMP15))

      case VOLT:
        
        let _TEMP16 = _dimensional_exponents(
          LENGTH_EXPONENT: SDAI.UNWRAP(SDAI.REAL(2.0000000000e+00)), 
          MASS_EXPONENT: SDAI.UNWRAP(SDAI.REAL(1.0000000000e+00)), 
          TIME_EXPONENT: SDAI.UNWRAP(SDAI.REAL( -3.0000000000e+00)), 
          ELECTRIC_CURRENT_EXPONENT: SDAI.UNWRAP(SDAI.REAL( -1.0000000000e+00)), 
          THERMODYNAMIC_TEMPERATURE_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          AMOUNT_OF_SUBSTANCE_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          LUMINOUS_INTENSITY_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)))
        return _dimensions_for_si_unit__cache.updateCache(params: _params, value: eDIMENSIONAL_EXPONENTS(/*partial entity*/
          _TEMP16))

      case FARAD:
        
        let _TEMP17 = _dimensional_exponents(
          LENGTH_EXPONENT: SDAI.UNWRAP(SDAI.REAL( -2.0000000000e+00)), 
          MASS_EXPONENT: SDAI.UNWRAP(SDAI.REAL( -1.0000000000e+00)), 
          TIME_EXPONENT: SDAI.UNWRAP(SDAI.REAL(4.0000000000e+00)), 
          ELECTRIC_CURRENT_EXPONENT: SDAI.UNWRAP(SDAI.REAL(2.0000000000e+00)), 
          THERMODYNAMIC_TEMPERATURE_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          AMOUNT_OF_SUBSTANCE_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          LUMINOUS_INTENSITY_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)))
        return _dimensions_for_si_unit__cache.updateCache(params: _params, value: eDIMENSIONAL_EXPONENTS(/*partial entity*/
          _TEMP17))

      case OHM:
        
        let _TEMP18 = _dimensional_exponents(
          LENGTH_EXPONENT: SDAI.UNWRAP(SDAI.REAL(2.0000000000e+00)), 
          MASS_EXPONENT: SDAI.UNWRAP(SDAI.REAL(1.0000000000e+00)), 
          TIME_EXPONENT: SDAI.UNWRAP(SDAI.REAL( -3.0000000000e+00)), 
          ELECTRIC_CURRENT_EXPONENT: SDAI.UNWRAP(SDAI.REAL( -2.0000000000e+00)), 
          THERMODYNAMIC_TEMPERATURE_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          AMOUNT_OF_SUBSTANCE_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          LUMINOUS_INTENSITY_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)))
        return _dimensions_for_si_unit__cache.updateCache(params: _params, value: eDIMENSIONAL_EXPONENTS(/*partial entity*/
          _TEMP18))

      case SIEMENS:
        
        let _TEMP19 = _dimensional_exponents(
          LENGTH_EXPONENT: SDAI.UNWRAP(SDAI.REAL( -2.0000000000e+00)), 
          MASS_EXPONENT: SDAI.UNWRAP(SDAI.REAL( -1.0000000000e+00)), 
          TIME_EXPONENT: SDAI.UNWRAP(SDAI.REAL(3.0000000000e+00)), 
          ELECTRIC_CURRENT_EXPONENT: SDAI.UNWRAP(SDAI.REAL(2.0000000000e+00)), 
          THERMODYNAMIC_TEMPERATURE_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          AMOUNT_OF_SUBSTANCE_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          LUMINOUS_INTENSITY_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)))
        return _dimensions_for_si_unit__cache.updateCache(params: _params, value: eDIMENSIONAL_EXPONENTS(/*partial entity*/
          _TEMP19))

      case WEBER:
        
        let _TEMP20 = _dimensional_exponents(
          LENGTH_EXPONENT: SDAI.UNWRAP(SDAI.REAL(2.0000000000e+00)), 
          MASS_EXPONENT: SDAI.UNWRAP(SDAI.REAL(1.0000000000e+00)), 
          TIME_EXPONENT: SDAI.UNWRAP(SDAI.REAL( -2.0000000000e+00)), 
          ELECTRIC_CURRENT_EXPONENT: SDAI.UNWRAP(SDAI.REAL( -1.0000000000e+00)), 
          THERMODYNAMIC_TEMPERATURE_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          AMOUNT_OF_SUBSTANCE_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          LUMINOUS_INTENSITY_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)))
        return _dimensions_for_si_unit__cache.updateCache(params: _params, value: eDIMENSIONAL_EXPONENTS(/*partial entity*/
          _TEMP20))

      case TESLA:
        
        let _TEMP21 = _dimensional_exponents(
          LENGTH_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          MASS_EXPONENT: SDAI.UNWRAP(SDAI.REAL(1.0000000000e+00)), 
          TIME_EXPONENT: SDAI.UNWRAP(SDAI.REAL( -2.0000000000e+00)), 
          ELECTRIC_CURRENT_EXPONENT: SDAI.UNWRAP(SDAI.REAL( -1.0000000000e+00)), 
          THERMODYNAMIC_TEMPERATURE_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          AMOUNT_OF_SUBSTANCE_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          LUMINOUS_INTENSITY_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)))
        return _dimensions_for_si_unit__cache.updateCache(params: _params, value: eDIMENSIONAL_EXPONENTS(/*partial entity*/
          _TEMP21))

      case HENRY:
        
        let _TEMP22 = _dimensional_exponents(
          LENGTH_EXPONENT: SDAI.UNWRAP(SDAI.REAL(2.0000000000e+00)), 
          MASS_EXPONENT: SDAI.UNWRAP(SDAI.REAL(1.0000000000e+00)), 
          TIME_EXPONENT: SDAI.UNWRAP(SDAI.REAL( -2.0000000000e+00)), 
          ELECTRIC_CURRENT_EXPONENT: SDAI.UNWRAP(SDAI.REAL( -2.0000000000e+00)), 
          THERMODYNAMIC_TEMPERATURE_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          AMOUNT_OF_SUBSTANCE_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          LUMINOUS_INTENSITY_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)))
        return _dimensions_for_si_unit__cache.updateCache(params: _params, value: eDIMENSIONAL_EXPONENTS(/*partial entity*/
          _TEMP22))

      case DEGREE_CELSIUS:
        
        let _TEMP23 = _dimensional_exponents(
          LENGTH_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          MASS_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          TIME_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          ELECTRIC_CURRENT_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          THERMODYNAMIC_TEMPERATURE_EXPONENT: SDAI.UNWRAP(SDAI.REAL(1.0000000000e+00)), 
          AMOUNT_OF_SUBSTANCE_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          LUMINOUS_INTENSITY_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)))
        return _dimensions_for_si_unit__cache.updateCache(params: _params, value: eDIMENSIONAL_EXPONENTS(/*partial entity*/
          _TEMP23))

      case LUMEN:
        
        let _TEMP24 = _dimensional_exponents(
          LENGTH_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          MASS_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          TIME_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          ELECTRIC_CURRENT_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          THERMODYNAMIC_TEMPERATURE_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          AMOUNT_OF_SUBSTANCE_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          LUMINOUS_INTENSITY_EXPONENT: SDAI.UNWRAP(SDAI.REAL(1.0000000000e+00)))
        return _dimensions_for_si_unit__cache.updateCache(params: _params, value: eDIMENSIONAL_EXPONENTS(/*partial entity*/
          _TEMP24))

      case LUX:
        
        let _TEMP25 = _dimensional_exponents(
          LENGTH_EXPONENT: SDAI.UNWRAP(SDAI.REAL( -2.0000000000e+00)), 
          MASS_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          TIME_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          ELECTRIC_CURRENT_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          THERMODYNAMIC_TEMPERATURE_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          AMOUNT_OF_SUBSTANCE_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          LUMINOUS_INTENSITY_EXPONENT: SDAI.UNWRAP(SDAI.REAL(1.0000000000e+00)))
        return _dimensions_for_si_unit__cache.updateCache(params: _params, value: eDIMENSIONAL_EXPONENTS(/*partial entity*/
          _TEMP25))

      case BECQUEREL:
        
        let _TEMP26 = _dimensional_exponents(
          LENGTH_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          MASS_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          TIME_EXPONENT: SDAI.UNWRAP(SDAI.REAL( -1.0000000000e+00)), 
          ELECTRIC_CURRENT_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          THERMODYNAMIC_TEMPERATURE_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          AMOUNT_OF_SUBSTANCE_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          LUMINOUS_INTENSITY_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)))
        return _dimensions_for_si_unit__cache.updateCache(params: _params, value: eDIMENSIONAL_EXPONENTS(/*partial entity*/
          _TEMP26))

      case GRAY:
        
        let _TEMP27 = _dimensional_exponents(
          LENGTH_EXPONENT: SDAI.UNWRAP(SDAI.REAL(2.0000000000e+00)), 
          MASS_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          TIME_EXPONENT: SDAI.UNWRAP(SDAI.REAL( -2.0000000000e+00)), 
          ELECTRIC_CURRENT_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          THERMODYNAMIC_TEMPERATURE_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          AMOUNT_OF_SUBSTANCE_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          LUMINOUS_INTENSITY_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)))
        return _dimensions_for_si_unit__cache.updateCache(params: _params, value: eDIMENSIONAL_EXPONENTS(/*partial entity*/
          _TEMP27))

      case SIEVERT:
        
        let _TEMP28 = _dimensional_exponents(
          LENGTH_EXPONENT: SDAI.UNWRAP(SDAI.REAL(2.0000000000e+00)), 
          MASS_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          TIME_EXPONENT: SDAI.UNWRAP(SDAI.REAL( -2.0000000000e+00)), 
          ELECTRIC_CURRENT_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          THERMODYNAMIC_TEMPERATURE_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          AMOUNT_OF_SUBSTANCE_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)), 
          LUMINOUS_INTENSITY_EXPONENT: SDAI.UNWRAP(SDAI.REAL(0)))
        return _dimensions_for_si_unit__cache.updateCache(params: _params, value: eDIMENSIONAL_EXPONENTS(/*partial entity*/
          _TEMP28))

      default:
        return _dimensions_for_si_unit__cache.updateCache(params: _params, value: (nil as 
          eDIMENSIONAL_EXPONENTS?))
      } //end switch
    }
    else {
      return _dimensions_for_si_unit__cache.updateCache(params: _params, value: (nil as 
        eDIMENSIONAL_EXPONENTS?))
    }
  }

}

//MARK: - function result cache
private var _dimensions_for_si_unit__cache = SDAI.FunctionResultCache(
  controller: AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.schemaDefinition)

