def METHOD_NAME(
    self,
    workspace: openstudio.Workspace,
    runner: openstudio.measure.OSRunner,
    user_arguments: openstudio.measure.OSArgumentMap,
):
    """Defines what happens when the measure is run."""
    super().METHOD_NAME(workspace, runner, user_arguments)  # Do **NOT** remove this line
    if not (runner.validateUserArguments(self.arguments(workspace), user_arguments)):
        return False
    # assign the user inputs to variables
    zone_name = runner.getStringArgumentValue("zone_name", user_arguments)
    # check the zone_name for reasonableness
    if not zone_name:
        runner.registerError("Empty zone name was entered.")
        return False
    # get all thermal zones in the starting workspace
    zones = workspace.getObjectsByType("Zone")
    # report initial condition of workspace
    runner.registerInitialCondition(f"The building started with {len(zones)} zones.")
    # add a new zone to the model with the new name
    # http://apps1.eere.energy.gov/buildings/energyplus/pdfs/inputoutputreference.pdf#nameddest=Zone
    new_zone_string = f"""