def METHOD_NAME(self):
    """Initialise the ValueEnum from the hardware
    Raises:
        RuntimeError: No aperture diameters defined.
                      Factor and aperture diameter not the same number.
                      Invalid factor values.
    """
    predefined_postions = self._exporter.read_property("ApertureDiameters")
    if not predefined_postions:
        raise RuntimeError("No aperture diameters defined")
    values = {}
    try:
        # get the factors
        factor = literal_eval(self.get_property("factor"))
        if len(predefined_postions) == len(factor):
            for _pos, _fac in zip(predefined_postions, factor):
                values["A{0}".format(_pos)] = (
                    predefined_postions.index(_pos),
                    _pos,
                    _fac,
                )
        else:
            raise RuntimeError("Factor and aperture diameter not the same number")
    except (ValueError, TypeError):
        raise RuntimeError("Invalid factor values")
    self.VALUES = Enum(
        "ValueEnum",
        dict(values, **{item.name: item.value for item in BaseValueEnum}),
    )