code: def modify_object(self, property_name, property_value_variant=None):
          
          if type(property_name) is dict:
              property_value_variant = property_name.values()
              property_name = property_name.keys()
  
          if isinstance(property_name, str):
              property_name, property_value_variant = [property_name], [property_value_variant]
          assert len(property_name) == len(property_value_variant)
  
          # convert names into visible
          property_name = self.__class__._to_visible(property_name)
  
          # loop over properties to set
          for n, v in zip(property_name, property_value_variant):
              self._modify_property(n.encode('ascii','ignore'), v)
  
          # rebuild object in order to maintain consistency
          self._rebuild_object()
          return self
docs: api visible method for modifying visible object properties
  
          :param property_name: property name
          :type property_name: string, list or dict
          :param property_value_variant: property value, must be `None` if property_name is of type `dict`
          :type property_value_variant: various or None
          :return: modified object
          :rtype: unicum.lfojbect.VisibleObject