docs: def choices(self):
          """Retrieve the parts that you can reference for this `ReferenceProperty`.
  
          This method makes 2 API calls: 1) to retrieve the referenced model, and 2) to retrieve the instances of
          that model.
  
          :return: the :class:`Part`'s that can be referenced as a :class:`~pykechain.model.PartSet`.
          :raises APIError: When unable to load and provide the choices
  
          Example
          -------
  
          >>> property = project.part('Bike').property('RefTest')
          >>> reference_part_choices = property.choices()
  
          """
          # from the reference property (instance) we need to get the value of the reference property in the model
          # in the reference property of the model the value is set to the ID of the model from which we can choose parts
          model_parent_part = self.part.model()  # makes single part call
          property_model = model_parent_part.property(self.name)
          referenced_model = self._client.model(pk=property_model._value['id'])  # makes single part call
          possible_choices = self._client.parts(model=referenced_model)  # makes multiple parts call
  
          return possible_choices