docs: def get_numeric_value(self, value_str, dimension = None):
          """
          Get the numeric value for a parameter value specification.
  
          @param value_str: Value string
          @type value_str: str
  
          @param dimension: Dimension of the value
          @type dimension: str
          """
  
          n = None
          i = len(value_str)
          while n is None:
              try:
                  part = value_str[0:i]
                  nn = float(part)
                  n = nn
                  s = value_str[i:]
              except ValueError:
                  i = i-1
  
  
          number = n
          sym = s
  
          numeric_value = None
  
          if sym == '':
              numeric_value = number
          else:
              if sym in self.units:
                  unit = self.units[sym]
                  if dimension:
                      if dimension != unit.dimension and dimension != '*':
                          raise SimBuildError("Unit symbol '{0}' cannot "
                                              "be used for dimension '{1}'",
                                              sym, dimension)
                  else:
                      dimension = unit.dimension
  
                  numeric_value = (number * (10 ** unit.power) * unit.scale) + unit.offset
              else:
                  raise SimBuildError("Unknown unit symbol '{0}'. Known: {1}",
                                      sym, self.units)
                                      
          #print("Have converted %s to value: %s, dimension %s"%(value_str, numeric_value, dimension))                            
          return numeric_value