Below is the example of using the SetMs operation to edit equation parameters. The request contains an instance of opened modeling container, parameters of operation execution, equation settings for theBaxter-King Filter method, and the pattern for getting changed data. After execution the operation returns the model that contains the changed equation.
{
"Envelope" :
{
"Body" :
{
"SetMs" :
{
"tMs" :
{
"id" : "S20!M!S!C1"
},
"tArg" :
{
"pattern" :
{
"obInst" : "true",
"item" :
{
"key" : "3317",
"model" :
{
"transform" :
{
"formulas" : ""
}
}
}
},
"meta" :
{
"item" :
{
"k" : "3317",
"type" : "Model",
"modelMd" :
{
"transform" :
{
"formulas" :
{
"its" :
{
"it" :
[
{
"k" : "0",
"kind" : "BandpassFilter",
"method" :
{
"bandpassFilter" :
{
"missingData" : "",
"width" : "3",
"frequencyLow" : "2",
"frequencyHigh" : "8",
"outputType" : "CycleSeries" } } } ] } } } } }
},
"metaGet" :
{
"obInst" : "true",
"scenarios" : "Get",
"item" :
{
"key" : "2803",
"problem" :
{
"metamodel" :
{
"calculationChain" : "Get",
"calcChainPattern" :
{
"modelPattern" :
{
"transform" :
{
"formulaCount" : "true",
"formulas" :
{
"method" : ""
},
"equationsFormula" :
{
"method" : ""
},
"kind" : "true"
}
}
},
"visualControllerPattern" :
{
"variableRubricatorKey" : "true",
"chainWorkbookKey" : "true",
"freeVariables" : "true"
}
}
}
}
},
"execParams" :
{
"execSaveModel" : "true"
}
}
}
}
}
}
{
"Envelope" :
{
"Body" :
{
"SetMsResult" :
{
"id" :
{
"id" : "S20!M!S!C1"
},
"meta" :
{
"obInst" :
{
"obDesc" :
{
"@isShortcut" : "0", "i" : "MODELSPACE", "n" : "Modeling container", "k" : "1581", "c" : "5121", "p" : "1580", "h" : "0" } }, "dirty" : "0"
"scenarios" :
{
"nodes" :
{
"it" :
{
"@isFolder" : "0",
"k" : "1628",
"id" : "OBJ1628",
"n" : "Basic",
"vis" : "1",
"scenDesc" :
{
"@isShortcut" : "0",
"i" : "OBJ1628",
"n" : "Basic",
"k" : "1628",
"c" : "5124",
"p" : "1627",
"h" : "0"
}
}
}
},
"item" :
{
"k" : "2803",
"id" : "TEMP_MODEL",
"n" : "TEMP_MODEL",
"vis" : "1",
"type" : "Problem",
"problemMd" :
{
"metamodel" :
{
"k" : "2804",
"calculationChain" :
{
"its" :
{
"Item" :
{
"k" : "3317",
"id" : "OBJ3317",
"n" : "MyInputVavable[t] = HPFilter(MyInputVavable[t], Degree = 2.000)",
"vis" : "1",
"type" : "Model",
"excluded" : "0",
"model" :
{
"transform" :
{
"formulaCount" : "1",
"formulas" :
{
"its" :
{
"it" :
[
{
"k" : "0",
"kind" : "BandpassFilter",
"method" :
{
"bandpassFilter" :
{
"missingData" :
{
"specifiedVector" : "",
"method" : "None",
"methodParameter" : "5",
"specifiedValue" : "0"
},
"width" : "3",
"frequencyLow" : "2.000000",
"frequencyHigh" : "8.000000",
"outputType" : "CycleSeries",
"explained" :
{
"slice" :
{
"k" : "0",
"id" : "261",
"n" : "MyInputVavable",
"vis" : "1",
"variableKey" : "3319",
"stubKey" : "2805",
"selections" :
{
"its" :
{
"Item" :
{
"id" :
{
"id" : "2818"
},
"variant" : "261"
}
}
},
"aggregator" : "None",
"parametrizedDimensions" :
{
"its" :
{
"Item" :
{
"dimension" : "0",
"parameter" : "0"
}
}
},
"unitInfo" :
{
"unit" : "4294967295",
"measure" : "4294967295",
"baseUnit" : "4294967295",
"unitsDimensionKey" : "0"
},
"level" : "None"
},
"lag" : "",
"key" : "0",
"termToText" : "{MyInputVavable[t]}",
"termToInnerText" : "@_3319:0[]",
"termInfo" :
{
"k" : "4294967295",
"lag" : "0",
"inversion" :
{
"type" : "None",
"lag" : "PrecidingValue",
"previousLag" : "-1",
"seasonality" : "None",
"dependence" : "Linear",
"K" : "3"
}
},
"unitInfo" :
{
"unit" : "4294967295",
"measure" : "4294967295",
"baseUnit" : "4294967295",
"unitsDimensionKey" : "0"
}
},
"cycleTerm" :
{
"k" : "4294967295"
},
"nonCyclicalTerm" :
{
"k" : "4294967295"
}
},
"inversionInfo" :
{
"type" : "None",
"lag" : "PrecidingValue", "previousLag" : "-1", "seasonality" : "None", "dependence" : "Linear", "K" : "3" } }, "calendarLevel" : "Year", "outputSliceKey" : "0" }
] } }, "kind" : "Simple" } } } } }, "visualController" :
{
"variableRubricatorKey" : "2805",
"chainWorkbookKey" : "2837",
"freeVariables" :
{
"its" :
{
"Item" :
{
"k" : "0",
"id" : "262",
"n" : "MyOutputVavable",
"vis" : "1",
"variableKey" : "2840",
"stubKey" : "2805",
"selections" :
{
"its" :
{
"Item" :
{
"id" :
{
"id" : "2818"
},
"variant" : "262"
}
}
},
"aggregator" : "None",
"parametrizedDimensions" :
{
"its" :
{
"Item" :
{
"dimension" : "0",
"parameter" : "0"
}
}
},
"unitInfo" :
{
"unit" : "4294967295",
"measure" : "4294967295",
"baseUnit" : "4294967295",
"unitsDimensionKey" : "0"
},
"level" : "None"
}
} } } } } } } } } } }
The SetMsBpf function changes the method of equation calculation. Input parameters:
ms. Opened modeling container instance.
modelKey. Key of the model that contains the equation.
eqKey. Equation key.
After executing the function returns a model that contains the equation.
public static MsItem SetMsBpf(MsId ms, ulong modelKey, ulong eqKey)
{
// vars.its.Length
var setMsOp = new SetMs();
// Set operation execution parameters
setMsOp.tMs = ms;
setMsOp.tArg = new SetMsArg()
{ // Set data change pattern
pattern = new MsMdPattern()
{
item = new MsItemPattern()
{ // Specify model key
key = modelKey,
problem = new MsProblemPattern()
{
metamodel = new MsMetaModelPattern()
{
calculationChain = ListOperation.Change
}
}
}
},
// Set data that must be changed
meta = new MsMd()
{
item = new MsItem()
{
k = modelKey,
type = MsItemType.Problem,
problemMd = new MsProblem()
{
metamodel = new MsMetaModel()
{
calculationChain = new MsCalculationChainEntries()
{
its = new MsCalculationChainEntry[]
{
new MsCalculationChainEntry()
{
k = eqKey,
type = MsCalculationChainType.Model,
model = new MsModel()
{
transform = new MsFormulaTransform()
{
formulas = new TsFormulas()
{
its = new TsFormula[]
{
new TsFormula()
{
kind = TsFormulaKind.BandpassFilter,
method = new TsMethod()
{ // Set parameters of the Baxter-King Filter method
bandpassFilter = new TsBandpassFilterMethod()
{
// Set missing data treatment method
missingData = new StatMissingData(){},
// Set cycle period parameters
width = 3,
frequencyLow = 2,
frequencyHigh = 8,
// Set component loaded to output variable
outputType = TsBPFOutputType.CycleSeries,
// Do not additionally load cycle and non-cyclical components
cycleTerm = null,
nonCyclicalTerm = null
}
}
}
}
}
}
}
}
}
}
}
}
}
}, // Set changed data extraction pattern
metaGet = new MsMdPattern()
{
scenarios = ListOperation.Get,
period = true,
item = new MsItemPattern()
{
key = modelKey,
problem = new MsProblemPattern()
{
details = true,
scenarios = ListOperation.Get,
useSavedCoefficients = true,
metamodel = new MsMetaModelPattern()
{
calculationChain = ListOperation.Get,
calcChainPattern = new MsCalculationChainPattern()
{
modelPattern = new MsModelPattern()
{
transform = new MsFormulaTransformPattern()
{
kind = true,
formulaCount = true,
formulas = new TsFormulaPattern()
{
method = new TsMethodPattern() { }
},
equationsFormula = new TsFormulaPattern()
{
method = new TsMethodPattern() { }
}
}
}
},
visualControllerPattern = new MsMetaModelVisualControllerPattern()
{
variableRubricatorKey = true,
levelFormat = MsLevelFormat.Short,
useSourceName = false,
freeVariables = true
}
}
}
}
}
};
// Create a proxy object for operation execution
var somClient = new SomPortTypeClient();
// Set operation execution parameters
var result = somClient.SetMs(setMsOp);
return result.meta.item;
}
See also:
SetMs: Operation | Baxter-King filter
SOAP