Skip to content

Dimension

Dimension(name, hierarchies=None)

Bases: TM1Object

Abstraction of TM1 Dimension

A Dimension is a container for hierarchies.

Abstraction of TM1 Dimension

Parameters:

Name Type Description Default
name str

Name of the dimension

required
hierarchies Optional[Iterable[Hierarchy]]

List of TM1py.Objects.Hierarchy instances

None
Source code in TM1py/Objects/Dimension.py
def __init__(self, name: str, hierarchies: Optional[Iterable[Hierarchy]] = None):
    """Abstraction of TM1 Dimension


    :param name: Name of the dimension
    :param hierarchies: List of TM1py.Objects.Hierarchy instances
    """
    self._name = name
    self._hierarchies = list(hierarchies) if hierarchies else []
    self._attributes = {"Caption": name}

body property

body_as_dict property

default_hierarchy property

hierarchies property

hierarchy_names property

name property writable

unique_name property

__contains__(item)

Source code in TM1py/Objects/Dimension.py
def __contains__(self, item):
    return self.contains_hierarchy(item)

__getitem__(item)

Source code in TM1py/Objects/Dimension.py
def __getitem__(self, item):
    return self.get_hierarchy(item)

__iter__()

Source code in TM1py/Objects/Dimension.py
def __iter__(self):
    return iter(self._hierarchies)

__len__()

Source code in TM1py/Objects/Dimension.py
def __len__(self):
    return len(self.hierarchies)

add_hierarchy(hierarchy)

Source code in TM1py/Objects/Dimension.py
def add_hierarchy(self, hierarchy: Hierarchy):
    if self.contains_hierarchy(hierarchy.name):
        raise ValueError("Hierarchy: {} already exists in dimension: {}".format(hierarchy.name, self.name))
    self._hierarchies.append(hierarchy)

contains_hierarchy(hierarchy_name)

Source code in TM1py/Objects/Dimension.py
def contains_hierarchy(self, hierarchy_name: str) -> bool:
    for hierarchy in self._hierarchies:
        if case_and_space_insensitive_equals(hierarchy.name, hierarchy_name):
            return True
    return False

from_dict(dimension_as_dict) classmethod

Source code in TM1py/Objects/Dimension.py
@classmethod
def from_dict(cls, dimension_as_dict: Dict) -> "Dimension":
    return cls(
        name=dimension_as_dict["Name"],
        hierarchies=[
            Hierarchy.from_dict(hierarchy, dimension_name=dimension_as_dict["Name"])
            for hierarchy in dimension_as_dict["Hierarchies"]
        ],
    )

from_json(dimension_as_json) classmethod

Source code in TM1py/Objects/Dimension.py
@classmethod
def from_json(cls, dimension_as_json: str) -> "Dimension":
    dimension_as_dict = json.loads(dimension_as_json)
    return cls.from_dict(dimension_as_dict)

get_hierarchy(hierarchy_name)

Source code in TM1py/Objects/Dimension.py
def get_hierarchy(self, hierarchy_name: str) -> Hierarchy:
    for hierarchy in self._hierarchies:
        if case_and_space_insensitive_equals(hierarchy.name, hierarchy_name):
            return hierarchy
    raise ValueError("Hierarchy: {} not found in dimension: {}".format(hierarchy_name, self.name))

remove_hierarchy(hierarchy_name)

Source code in TM1py/Objects/Dimension.py
def remove_hierarchy(self, hierarchy_name: str):
    if case_and_space_insensitive_equals(hierarchy_name, "leaves"):
        raise ValueError("'Leaves' hierarchy must not be removed from dimension")

    for num, hierarchy in enumerate(self._hierarchies):
        if case_and_space_insensitive_equals(hierarchy.name, hierarchy_name):
            del self._hierarchies[num]
            return