Model: IMsModel;
Свойство Model возвращает модель, для которой установлена точка останова.
Для выполнения примера предполагается наличие в репозитории контейнера моделирования с идентификатором «MODEL_SPACE», содержащий задачу моделирования с идентификатором «PROBLEM».
Добавьте ссылки на системные сборки «Metabase», «Ms».
Sub UserProc;
Var
mb: IMetabase;
ModelSpaceDescr: IMetabaseObjectDescriptor;
Problem: IMsProblem;
CalcSettings: IMsProblemCalculationSettings;
Calculation: IMsProblemCalculation;
CalculationTree: IMsCalculationTree;
CalcChildren: IMsCalculationTreeNodes;
i: Integer;
Item: IMsCalculationTreeNode;
ModelTreeNode: IMsCalculationModelTreeNode;
Begin
mb := MetabaseClass.Active;
ModelSpaceDescr := Mb.ItemById("MODEL_SPACE");
Problem := Mb.ItemByIdNamespace("PROBLEM", ModelSpaceDescr.Key).Bind As IMsProblem;
CalcSettings := Problem.CreateCalculationSettings;
CalcSettings.FactIncluded := True;
Calculation := Problem.Calculate(CalcSettings);
CalculationTree := Calculation.CalculationTree;
CalcChildren := CalculationTree.Children;
For i := 0 To CalcChildren.Count - 1 Do
Item := CalcChildren.Item(i);
If Item.Kind = MsCalculationTreeNodeKind.Model Then
ModelTreeNode := Item As IMsCalculationModelTreeNode;
Debug.WriteLine("Точка остановы");
Debug.WriteLine(" - ключ: " + ModelTreeNode.Key.ToString);
Debug.WriteLine(" - ключ сценария: " + ModelTreeNode.Scenario.ToString);
Debug.WriteLine(" - присутствует родитель: " + (ModelTreeNode.Parent <> Null).ToString);
Debug.WriteLine(" - модель: " + (ModelTreeNode.Model As IMetabaseObject).Name);
End If;
End For;
End Sub UserProc;
После выполнения примера в окно консоли будет выведена информация о точках останова, если они присутствуют в задаче.
См. также: