Parameter: IMsModelParam;
The Parameters property determines a dimension parameter.
Executing the example requires that the repository contains a time series database with the FC_PARAM identifier. This database contains the COUNTRY attribute that refers to the dictionary. Modeling container of the database contains a metamodel with the META_MODEL identifier and a model with the MODEL identifier. A parameter, that refers to the same dictionary as the COUNTRY attribute, is set for the metamodel.
Add links to the Metabase, Ms, Cubes, Dimensions system assemblies.
Sub UserProc;
Var
mb: IMetabase;
Catalog: IRubricator;
Transforms: IMetabaseObjectDescriptor;
MetaModel: IMsMetaModel;
Model: IMsModel;
Transform: IMsFormulaTransform;
Input: IMsFormulaTransformVariable;
Slice: IMsFormulaTransformSlice;
Sel: IDimSelectionSet;
Atts: IMetaAttributes;
Dict: IMetabaseObjectDescriptor;
dimInst: IDimInstance;
dimSel: IDimSelection;
Params: IMsModelParams;
paramDim: IMsParametrizedDimensions;
paramD: IMsParametrizedDimension;
pr: IMsModelParam;
Coord: IMsFormulaTransformCoord;
Begin
mb := MetabaseClass.Active;
Catalog := mb.ItemById("FC_PARAM").Bind As IRubricator;
Transforms := Catalog.ModelSpace;
MetaModel := mb.ItemByIdNamespace("METAMODEL", Transforms.Key).Bind As IMsMetaModel;
Model := mb.ItemByIdNamespace("MODEL", Transforms.Key).Edit As IMsModel;
Transform := Model.Transform;
Input := Transform.Inputs.Item(0);
Slice := Input.Slices.Item(0);
Sel := Slice.Selection;
Atts := Catalog.Facts.Attributes;
Dict := Atts.FindById("COUNTRY").ValuesObject;
dimInst := Dict.Open(Null) As IDimInstance;
dimSel := Sel.Add(dimInst);
dimSel.SelectElement(0, False);
Params := MetaModel.Params;
pr := Params.Item(0);
paramDim := Slice.ParametrizedDimensions;
paramD := paramDim.Item(0);
paramD.Parameter := pr;
Debug.WriteLine("Dimension name: " + paramD.DimensionDescriptor.Name);
Debug.WriteLine("Dimension description: " + (paramD.Dimension As IMetabaseObject).Description);
Coord := Transform.CreateCoord(Transform.Outputs.Item(0));
If Coord.TransparentDimensionsCount > 0 Then
Debug.WriteLine("modelling variable contains hidden dimensions");
End If;
(Model As IMetabaseObject).Save;
End Sub UserProc;
After executing the example parameterized dimension is set for the model variable slice. Information about it is displayed in the console window. If the output variable of the model contains hidden dimensions, the data about it is also displayed in the console.
See also: