Создание метамодели

Для выполнения примера предполагается наличие в репозитории контейнера моделирования с идентификатором «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;

После выполнения примера в контейнере моделирования будет создана метамодель. В цепочке расчета метамодели будет создано две папки, в каждую папку будет добавлено по одной модели.

См. также:

Примеры