code: def fetch_new_id(self, ):
          
          parent = self.get_parent()
          if parent:
              others = parent._children
          else:
              others = [r for r in self.get_root()._reftracks if r.get_parent() is None]
          others = [r for r in others
                    if r != self
                    and r.get_typ() == self.get_typ()
                    and r.get_element() == self.get_element()]
          highest = -1
          for r in others:
              identifier = r.get_id()
              if identifier > highest:
                  highest = identifier
          return highest + 1
docs: Return a new id for the given reftrack to be set on the refobject
  
          The id can identify reftracks that share the same parent, type and element.
  
          :returns: A new id
          :rtype: int
          :raises: None