def METHOD_NAME(
    model: Union[PolyData, UnstructuredGrid, MultiBlock],
    key: str = "groups",
    picked_groups: Union[str, list] = None,
) -> MultiBlock:
    """Pick the desired groups."""
    # Check input model.
    model = multiblock2model(model=model, message=None) if isinstance(model, MultiBlock) else model.copy()
    # Pick groups.
    picked_groups = [picked_groups] if isinstance(picked_groups, str) else picked_groups
    picked_models = []
    for group in picked_groups:
        if key in model.point_data.keys():
            picked_model = model.extract_points(model.point_data[key] == group)
        elif key in model.cell_data.keys():
            picked_model = model.extract_cells(model.cell_data[key] == group)
        else:
            raise ValueError(
                "`key` value is wrong." "\nThe `key` value must be contained in model.point_data or model.cell_data."
            )
        if isinstance(model, PolyData):
            picked_model = picked_model.extract_surface()
        picked_models.append(picked_model)
    return collect_models(picked_models)