code: def reference(self, taskfileinfo):
          
          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()
docs: 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`