docs: def command(self, cmd, progress_hook=None, *args, **kwargs):
          """
          Execute a model command.
  
          :param cmd: Name of the command.
          :param progress_hook: A function to which progress updates are passed.
          """
          cmds = cmd.split(None, 1)  # split commands and simulations
          sim_names = cmds[1:]  # simulations
          if not sim_names:
              sim_names = self.cmd_layer.reg.iterkeys()
          for sim_name in sim_names:
              sim_cmd = getattr(self.cmd_layer.reg[sim_name], cmd)
              sim_cmd(self, progress_hook=progress_hook, *args, **kwargs)