Reference the entity into the scene. Only possible if the current status is None.

        This will create a new refobject, then call :meth:`RefobjInterface.reference` and
        afterwards set the refobj on the :class:`Reftrack` instance.

        :param taskfileinfo: the taskfileinfo to reference
        :type taskfileinfo: :class:`jukeboxcore.filesys.TaskFileInfo`
        :returns: None
        :rtype: None
        :raises: :class:`ReftrackIntegrityError`

def reference(self, taskfileinfo):
        """Reference the entity into the scene. Only possible if the current status is None.

        This will create a new refobject, then call :meth:`RefobjInterface.reference` and
        afterwards set the refobj on the :class:`Reftrack` instance.

        :param taskfileinfo: the taskfileinfo to reference
        :type taskfileinfo: :class:`jukeboxcore.filesys.TaskFileInfo`
        :returns: None
        :rtype: None
        :raises: :class:`ReftrackIntegrityError`
        """
        assert self.status() is None,\
            "Can only reference, if the entity is not already referenced/imported. Use replace instead."
        refobj = self.create_refobject()
        with self.set_parent_on_new(refobj):
            self.get_refobjinter().reference(taskfileinfo, refobj)
        self.set_refobj(refobj)
        self.fetch_new_children()
        self.update_restrictions()
        self.emit_data_changed()