Для выполнения примера предполагается наличие в репозитории контейнера моделирования с идентификатором «Kont_Model». В контейнере содержатся две модели «Model_1» и «Model_2».
Sub Main;
Var
MB: IMetabase;
KMDesc: IMetabaseObjectDescriptor;
CrInfo: IMetabaseObjectCreateInfo;
MObj: IMetabaseObject;
Meta: IMsMetaModel;
Model1, Model2: IMsModel;
Root: IMsCalculationChainEntries;
NewFolder: IMsCalculationChainFolder;
Begin
MB := MetabaseClass.Active;
KMDesc := MB.ItemById("Kont_Model");
CrInfo := MB.CreateCreateInfo;
CrInfo.ClassID := MetabaseObjectClass.KE_CLASS_MSMETAMODEL;
CrInfo.Id := "MetaModel_1";
CrInfo.Name := "Метамодель";
CrInfo.Parent := KMDesc;
MObj := MB.CreateObject(CrInfo).Edit;
Meta := MObj As IMsMetaModel;
Model1 := MB.ItemByIdNamespace("Model_1", KMDesc.Key).Bind As IMsModel;
Model2 := MB.ItemByIdNamespace("Model_2", KMDesc.Key).Bind As IMsModel;
Root := Meta.CalculationChain;
NewFolder := Root.AddFolder("Модель 1");
NewFolder.Contents.AddModel(Model1);
NewFolder := Root.AddFolder("Модель 2");
NewFolder.Contents.AddModel(Model2);
MObj.Save;
End Sub Main;
После выполнения примера в контейнере моделирования будет создана метамодель. В цепочке расчета метамодели будет создано две папки, в каждую папку будет добавлено по одной модели.
См. также: