def list_(client, name=None, file_=None, dim_type=None, encoded=None, select=False):
    """Get a list of dimensions from a model.

    If select is true, then the current selection in Creo will be cleared even
    if no items are found.

    Args:
        client (obj):
            creopyson Client.
        name (str|list:str, optional):
            Dimension name;
            if empty then all dimensions are listed.
        `file_` (str, optional):
            Model name. Defaults is current active model.
        dim_type (str, optional):
            Dimension type filter. Defaults is `no filter`.
            Valid values: linear, radial, diameter, angular.
        encoded (boolean, optional):
            Whether to return the values Base64-encoded. Defaults is False.
        select (boolean, optional):
            If true, the dimensions that are found will be selected in Creo.
            Defaults is False.

    Returns:
        (list:dict): List of dimension information.
            name (str):
                Dimension name
            value (str|float):
                Dimension value; if encoded is True it is a str,
                if encoded is False it is a float.
            encoded (boolean):
                Whether the returned value is Base64-encoded.
            dwg_dim (boolean):
                Whether dimension is a drawing dimension rather than
                a model dimension.

    """
    data = {}
    if file_ is not None:
        data["file"] = file_
    else:
        active_file = client.file_get_active()
        if active_file:
            data["file"] = active_file["file"]
    if name is not None:
        if isinstance(name, (str)):
            data["name"] = name
        elif isinstance(name, (list)):
            data["names"] = name
    if dim_type is not None:
        data["dim_type"] = dim_type
    if encoded is not None:
        data["encoded"] = encoded
    if select is not None:
        data["select"] = select
    return client._creoson_post("dimension", "list", data, "dimlist")