Level
Represents a group of members in a hierarchy, all at the same depth and sharing the same attributes and behavior patterns. Levels define the fundamental granularity layers within a dimension hierarchy that enable multidimensional analysis and navigation. For example, a Time dimension might contain levels like Year-Quarter-Month-Day, while a Geography dimension could have Country-State-City-ZipCode levels. Each level maps to specific database columns that provide member identification (key column), human-readable display (name column), localized captions (caption column), and custom sorting (ordinal column). Levels support various advanced features including member properties for additional attributes, custom formatters for display logic, data type specifications for proper SQL generation, uniqueness constraints for optimization, visibility controls for user interface management, and hiding conditions for handling ragged hierarchies and data quality issues. The level type attribute provides semantic meaning for specialized processing in time intelligence, geographic analysis, and business domain-specific operations.
Extends
- AbstractElement 🔗
Attributes
Name | Id | Type | Lower | Upper |
---|---|---|---|---|
approxRowCount | false | EString | 0 | 1 |
Approximate number of members expected at this level, used for query optimization and performance tuning. This hint helps the OLAP engine choose appropriate caching strategies, index usage, and memory allocation for efficient member loading and query execution. | ||||
hideMemberIf | false | HideMemberIf🔗 | 0 | 1 |
Condition for hiding members from client tools and queries, useful for handling ragged hierarchies and data quality issues. Options include NEVER (all members visible), IF_BLANK_NAME (hide members with null/empty names), and IF_PARENTS_NAME (hide members whose name matches their parent's name). | ||||
type | false | LevelDefinition🔗 | 0 | 1 |
Semantic type of this level indicating its role in business analysis. Types include temporal levels (TIME_YEARS, TIME_MONTHS, TIME_DAYS), geographic levels (GEO_COUNTRY, GEO_STATE, GEO_CITY), business levels (CUSTOMER, PRODUCT, ACCOUNT), and general REGULAR type. This metadata enables specialized behavior, validation, and client tool integration. | ||||
columnType | false | ColumnInternalDataType🔗 | 0 | 1 |
Data type of the primary column values, used for appropriate SQL generation, comparison operations, and display formatting. Supported types include STRING, INTEGER, NUMERIC, BOOLEAN, DATE, and others. This type information ensures proper handling of member keys in queries and aggregations. | ||||
uniqueMembers | false | Boolean | 0 | 1 |
Boolean flag indicating whether member names are globally unique across the entire hierarchy or only unique within their parent context. When true, enables query optimizations and simplified member referencing. Required for parent-child hierarchies where name uniqueness cannot be guaranteed within parent scope. | ||||
visible | false | Boolean | 0 | 1 |
Controls whether this level appears in client tool level browsers, dimension trees, and metadata discovery. When false, the level becomes hidden from normal user interfaces but remains accessible for programmatic queries and advanced users who know the level name explicitly. |
References
Name | Type | Lower | Upper | Containment |
---|---|---|---|---|
memberProperties | MemberProperty🔗 | 0 | ∞ | true |
Collection of additional properties that can be associated with members at this level, providing supplementary attributes beyond the basic key, name, and caption for enhanced analytical capabilities. Member properties enable rich dimensional analysis by exposing additional member characteristics such as demographic information (age, gender, income), geographic data (coordinates, postal codes, regions), financial attributes (account types, credit ratings, balances), temporal properties (start dates, durations, fiscal periods), or any domain-specific descriptive attributes. These properties are fully accessible in MDX queries through property functions, appear in client tool member browsers, support filtering and sorting operations, can be used in calculated members and measures, and enable advanced analytical scenarios like property-based aggregations, conditional formatting, and drill-through operations. Properties support various data types including strings, numbers, dates, and booleans, with optional custom formatters for display logic and functional dependency flags for query optimization. | ||||
memberFormatter | MemberFormatter🔗 | 0 | 1 | false |
Optional custom formatter for controlling how members at this level are displayed in client tools and reports. The formatter can implement complex formatting logic, conditional styling, or custom string transformations based on member values and context. | ||||
captionColumn | Column🔗 | 0 | 1 | false |
Optional column providing display captions for level members that may differ from the name column. Captions are typically used for localized or business-friendly display names while preserving technical names for internal processing. When not specified, the nameColumn or column value is used for display purposes. | ||||
column | Column🔗 | 1 | 1 | false |
Primary key column that uniquely identifies members at this level. This column provides the essential identity for each member and is used for joins, grouping, and member references in queries. It serves as both the key and default display value when nameColumn is not specified. | ||||
nameColumn | Column🔗 | 0 | 1 | false |
Optional column providing human-readable names for level members. When specified, this column supplies the display names used in client tools and reports, while the main column serves as the key. If not specified, the main column value is used for both key and display purposes. | ||||
ordinalColumn | Column🔗 | 0 | 1 | false |
Optional column providing sort order values for level members, overriding alphabetical sorting based on names. This enables custom member ordering such as chronological sequences, business hierarchies, or priority-based arrangements that don't follow natural string sorting. |
Used by
- DimensionConnector🔗 → level
- ExplicitHierarchy🔗 → levels
- ParentChildHierarchy🔗 → level
- DrillThroughAttribute🔗 → level
- AccessHierarchyGrant🔗 → bottomLevel
- AccessHierarchyGrant🔗 → topLevel