def start_state_id(self, start_state_id, to_outcome=None):
        """Set the start state of the container state

        See property

        :param start_state_id: The state id of the state which should be executed first in the Container state
        :raises exceptions.ValueError: if the start_state_id does not exist in
                                    :py:attr:`rafcon.core.states.container_state.ContainerState.states`
        """
        if start_state_id is not None and start_state_id not in self.states:
            raise ValueError("start_state_id does not exist")

        if start_state_id is None and to_outcome is not None:  # this is the case if the start state is the state itself
            if to_outcome not in self.outcomes:
                raise ValueError("to_outcome does not exist")
            if start_state_id != self.state_id:
                raise ValueError("to_outcome defined but start_state_id is not state_id")

        # First we remove the transition to the start state
        for transition_id in self.transitions:
            if self.transitions[transition_id].from_state is None:
                # If the current start state is the same as the old one, we don't have to do anything
                if self.transitions[transition_id].to_state == start_state_id:
                    return
                self.remove_transition(transition_id)
                break
        if start_state_id is not None:
            self.add_transition(None, None, start_state_id, to_outcome)
Set the start state of the container state

        See property

        :param start_state_id: The state id of the state which should be executed first in the Container state
        :raises exceptions.ValueError: if the start_state_id does not exist in
                                    :py:attr:`rafcon.core.states.container_state.ContainerState.states`