# IHyperCubeDef Interface

Namespace: [Qlik.Engine](https://help.qlik.com/en-US/sense-developer/November2024/Subsystems/NetSDKAPIref/Content/Qlik.Engine.htm)  
Assembly: Qlik.Engine.dll

Defines the properties of a hypercube.

For more information about the definition of a hypercube, see `Generic object`.

## Syntax

```
[ValueClass]
public interface IHyperCubeDef : IAbstractStructure
```

## Properties

| Name | Description |
| --- | --- |
| [AlwaysFullyExpanded](https://help.qlik.com/en-US/sense-developer/November2024/Subsystems/NetSDKAPIref/Content/Qlik.Engine.IHyperCubeDef.AlwaysFullyExpanded.htm#Qlik_Engine_IHyperCubeDef_AlwaysFullyExpanded) | If this property is set to true, the cells are always expanded. It implies that it is not possible to collapse any cells.<br><br>The default value is false.<br><br>JSON property name: qAlwaysFullyExpanded |
| [CalcCond](https://help.qlik.com/en-US/sense-developer/November2024/Subsystems/NetSDKAPIref/Content/Qlik.Engine.IHyperCubeDef.CalcCond.htm#Qlik_Engine_IHyperCubeDef_CalcCond) | Specifies a calculation condition, which must be fulfilled for the hypercube to be (re)calculated.<br><br>As long as the condition is not met, the engine does not perform a new calculation.<br><br>This property is optional. By default, there is no calculation condition.<br><br>JSON property name: qCalcCond |
| [CalcCondition](https://help.qlik.com/en-US/sense-developer/November2024/Subsystems/NetSDKAPIref/Content/Qlik.Engine.IHyperCubeDef.CalcCondition.htm#Qlik_Engine_IHyperCubeDef_CalcCondition) | Specifies a calculation condition object.<br><br>If CalcCondition.Cond is not fulfilled, the hypercube is not calculated and CalcCondition.Msg is evaluated.<br><br>By default, there is no calculation condition.<br><br>This property is optional.<br><br>JSON property name: qCalcCondition |
| [ColumnOrder](https://help.qlik.com/en-US/sense-developer/November2024/Subsystems/NetSDKAPIref/Content/Qlik.Engine.IHyperCubeDef.ColumnOrder.htm#Qlik_Engine_IHyperCubeDef_ColumnOrder) | The order of the columns.<br><br>JSON property name: qColumnOrder |
| [ContextSetExpression](https://help.qlik.com/en-US/sense-developer/November2024/Subsystems/NetSDKAPIref/Content/Qlik.Engine.IHyperCubeDef.ContextSetExpression.htm#Qlik_Engine_IHyperCubeDef_ContextSetExpression) | Set Expression valid for the whole cube. Used to limit computations to the set specified.<br><br>JSON property name: qContextSetExpression |
| [Dimensions](https://help.qlik.com/en-US/sense-developer/November2024/Subsystems/NetSDKAPIref/Content/Qlik.Engine.IHyperCubeDef.Dimensions.htm#Qlik_Engine_IHyperCubeDef_Dimensions) | Array of dimensions.<br><br>JSON property name: qDimensions |
| [DynamicScript](https://help.qlik.com/en-US/sense-developer/November2024/Subsystems/NetSDKAPIref/Content/Qlik.Engine.IHyperCubeDef.DynamicScript.htm#Qlik_Engine_IHyperCubeDef_DynamicScript) | Hypercube Modifier Dynamic script string<br><br>JSON property name: qDynamicScript |
| [ExpansionState](https://help.qlik.com/en-US/sense-developer/November2024/Subsystems/NetSDKAPIref/Content/Qlik.Engine.IHyperCubeDef.ExpansionState.htm#Qlik_Engine_IHyperCubeDef_ExpansionState) | Expansion state per dimension for pivot mode ( `qMode` is P).<br><br>JSON property name: qExpansionState |
| [IndentMode](https://help.qlik.com/en-US/sense-developer/November2024/Subsystems/NetSDKAPIref/Content/Qlik.Engine.IHyperCubeDef.IndentMode.htm#Qlik_Engine_IHyperCubeDef_IndentMode) | This property applies for pivot tables and allows to change the layout of the table. An indentation is added to the beginning of each row.<br><br>The default value is false.<br><br>JSON property name: qIndentMode |
| [InitialDataFetch](https://help.qlik.com/en-US/sense-developer/November2024/Subsystems/NetSDKAPIref/Content/Qlik.Engine.IHyperCubeDef.InitialDataFetch.htm#Qlik_Engine_IHyperCubeDef_InitialDataFetch) | Initial data set.<br><br>JSON property name: qInitialDataFetch |
| [InterColumnSortOrder](https://help.qlik.com/en-US/sense-developer/November2024/Subsystems/NetSDKAPIref/Content/Qlik.Engine.IHyperCubeDef.InterColumnSortOrder.htm#Qlik_Engine_IHyperCubeDef_InterColumnSortOrder) | Defines the sort order of the columns in the hypercube.<br><br>Column numbers are separated by a comma.<br><br>Example: [1,0,2] means that the first column to be sorted should be the column 1, followed by the column 0 and the column 2.<br><br>The default sort order is the order in which the dimensions and measures have been defined in the hypercube. By default, the pseudo-dimension (if any) is the most to the right in the array.<br><br>The index of the pseudo-dimension (if any) is -1.<br><br>Pseudo dimensions only apply for pivot tables with more than one measure.<br><br>A pseudo dimension groups together the measures defined in a pivot table. You can neither collapse/expand a pseudo dimension nor make any selections in it.<br><br>Stacked pivot tables can only contain one measure.<br><br>JSON property name: qInterColumnSortOrder |
| [MaxStackedCells](https://help.qlik.com/en-US/sense-developer/November2024/Subsystems/NetSDKAPIref/Content/Qlik.Engine.IHyperCubeDef.MaxStackedCells.htm#Qlik_Engine_IHyperCubeDef_MaxStackedCells) | Maximum number of cells for an initial data fetch (set in `qInitialDataFetch` ) when in stacked mode ( `qMode` is K).<br><br>The default value is 5000.<br><br>JSON property name: qMaxStackedCells |
| [Measures](https://help.qlik.com/en-US/sense-developer/November2024/Subsystems/NetSDKAPIref/Content/Qlik.Engine.IHyperCubeDef.Measures.htm#Qlik_Engine_IHyperCubeDef_Measures) | Array of measures.<br><br>JSON property name: qMeasures |
| [Mode](https://help.qlik.com/en-US/sense-developer/November2024/Subsystems/NetSDKAPIref/Content/Qlik.Engine.IHyperCubeDef.Mode.htm#Qlik_Engine_IHyperCubeDef_Mode) | Defines the way the data are handled internally by the engine.<br><br>Default value is `DATA_MODE_STRAIGHT` .<br><br>A pivot table can contain several dimensions and measures whereas a stacked pivot table can contain several dimensions but only one measure.<br><br>JSON property name: qMode |
| [NoOfLeftDims](https://help.qlik.com/en-US/sense-developer/November2024/Subsystems/NetSDKAPIref/Content/Qlik.Engine.IHyperCubeDef.NoOfLeftDims.htm#Qlik_Engine_IHyperCubeDef_NoOfLeftDims) | Number of left dimensions.<br><br>Default value is -1. In that case, all dimensions are left dimensions.<br><br>Hidden dimensions (e.g. due to unfulfilled calc condition on dimension level) is still counted in this context.<br><br>The index related to each left dimension depends on the position of the pseudo dimension (if any).<br><br>For example, a pivot table with:<br><br>\* Four dimensions in the following order: Country, City, Product and Category.<br><br>\* One pseudo dimension in position 1 (the position is defined in `qInterColumnSortOrder` )<br><br><br>`qInterColumnSortOrder` is (0,-1,1,2,3).<br><br>\* Three left dimensions ( `qNoOfLeftDims` is set to 3).<br><br>implies that:<br><br>\* The index 0 corresponds to the left dimension Country.<br><br>\* The index 1 corresponds to the pseudo dimension.<br><br>\* The index 2 corresponds to the left dimension City.<br><br>\* Product and Category are top dimensions.<br><br>Another example:<br><br>\* Four dimensions in the following order: Country, City, Product and Category.<br><br>\* Three left dimensions ( `qNoOfLeftDims` is set to 3).<br><br>\* One pseudo dimension.<br><br>\* The property `qInterColumnSortOrder` is left empty.<br><br>Implies that:<br><br>\* The index 0 corresponds to the left dimension Country.<br><br>\* The index 1 corresponds to the left dimension City.<br><br>\* The index 2 corresponds to the left dimension Product.<br><br>\* Category is a top dimension.<br><br>\* The pseudo dimension is a top dimension.<br><br>JSON property name: qNoOfLeftDims |
| [PopulateMissing](https://help.qlik.com/en-US/sense-developer/November2024/Subsystems/NetSDKAPIref/Content/Qlik.Engine.IHyperCubeDef.PopulateMissing.htm#Qlik_Engine_IHyperCubeDef_PopulateMissing) | If this property is set to true, the missing symbols (if any) are replaced by 0 if the value is a numeric and by an empty string if the value is a string.<br><br>The default value is false.<br><br>JSON property name: qPopulateMissing |
| [PseudoDimPos](https://help.qlik.com/en-US/sense-developer/November2024/Subsystems/NetSDKAPIref/Content/Qlik.Engine.IHyperCubeDef.PseudoDimPos.htm#Qlik_Engine_IHyperCubeDef_PseudoDimPos) | JSON property name: qPseudoDimPos |
| [ReductionMode](https://help.qlik.com/en-US/sense-developer/November2024/Subsystems/NetSDKAPIref/Content/Qlik.Engine.IHyperCubeDef.ReductionMode.htm#Qlik_Engine_IHyperCubeDef_ReductionMode) | JSON property name: qReductionMode |
| [ShowTotalsAbove](https://help.qlik.com/en-US/sense-developer/November2024/Subsystems/NetSDKAPIref/Content/Qlik.Engine.IHyperCubeDef.ShowTotalsAbove.htm#Qlik_Engine_IHyperCubeDef_ShowTotalsAbove) | If set to true, the total (if any) is shown on the first row.<br><br>The default value is false.<br><br>JSON property name: qShowTotalsAbove |
| [SortbyYValue](https://help.qlik.com/en-US/sense-developer/November2024/Subsystems/NetSDKAPIref/Content/Qlik.Engine.IHyperCubeDef.SortbyYValue.htm#Qlik_Engine_IHyperCubeDef_SortbyYValue) | To enable the sorting by ascending or descending order in the values of a measure.<br><br>This property applies to pivot tables and stacked pivot tables.<br><br>In the case of a pivot table, the measure or pseudo dimension should be defined as a top dimension. The sorting is restricted to the values of the first measure in a pivot table.<br><br>JSON property name: qSortbyYValue |
| [StateName](https://help.qlik.com/en-US/sense-developer/November2024/Subsystems/NetSDKAPIref/Content/Qlik.Engine.IHyperCubeDef.StateName.htm#Qlik_Engine_IHyperCubeDef_StateName) | Name of the alternate state.<br><br>Default is current selections `$` .<br><br>JSON property name: qStateName |
| [SuppressMeasureTotals](https://help.qlik.com/en-US/sense-developer/November2024/Subsystems/NetSDKAPIref/Content/Qlik.Engine.IHyperCubeDef.SuppressMeasureTotals.htm#Qlik_Engine_IHyperCubeDef_SuppressMeasureTotals) | If set to true, suppress any measure grand totals, ignoring any AggrFunc.<br><br>JSON property name: qSuppressMeasureTotals |
| [SuppressMissing](https://help.qlik.com/en-US/sense-developer/November2024/Subsystems/NetSDKAPIref/Content/Qlik.Engine.IHyperCubeDef.SuppressMissing.htm#Qlik_Engine_IHyperCubeDef_SuppressMissing) | Removes missing values.<br><br>JSON property name: qSuppressMissing |
| [SuppressZero](https://help.qlik.com/en-US/sense-developer/November2024/Subsystems/NetSDKAPIref/Content/Qlik.Engine.IHyperCubeDef.SuppressZero.htm#Qlik_Engine_IHyperCubeDef_SuppressZero) | Removes zero values.<br><br>JSON property name: qSuppressZero |
| [Title](https://help.qlik.com/en-US/sense-developer/November2024/Subsystems/NetSDKAPIref/Content/Qlik.Engine.IHyperCubeDef.Title.htm#Qlik_Engine_IHyperCubeDef_Title) | Title of the hypercube, for example the title of a chart.<br><br>JSON property name: qTitle |