Ниже приведен пример использования операции SetMs для создания копии сценария моделирования. В запросе передаются: экземпляр открытого контейнера моделирования, параметры выполнения операции и добавляемый сценарий. В результате выполнения операция возвращает дерево сценариев модели.
{
"SetMs" :
{
"tMs" :
{
"id" : "S3!M!S!C1"
},
"tArg" :
{
"pattern" :
{
"obInst" : "true",
"scenarios" : "Add"
},
"meta" :
{
"scenarios" :
{
"nodes" :
{
"it" :
{
"@isFolder" : "false",
"k" : "0",
"id" : "",
"n" : "Базовый (копия)",
"vis" : "true",
"scenDesc" :
{
"@isShortcut" : "false",
"i" : "OBJ1628", "n" : "Базовый", "k" : "1628", "c" : "5124", "p" : "1627", "h" : "false" } } } }
},
"metaGet" :
{
"obInst" : "true",
"scenarios" : "Get"
}
}
}
}
}
}
{
"SetMsResult" :
{
"id" :
{
"id" : "S3!M!S!C1"
},
"meta" :
{
"obInst" :
{
"obDesc" :
{
"@isShortcut" : "0",
"i" : "MODELSPACE", "n" : "Контейнер моделирования", "k" : "1581", "c" : "5121", "p" : "1580", "h" : "0" } }, "dirty" : "0", "scenarios" :
{
"nodes" :
{
"it" :
[
{
"@isFolder" : "0",
"k" : "1628",
"id" : "OBJ1628",
"n" : "Базовый",
"vis" : "1",
"scenDesc" :
{
"@isShortcut" : "0",
"i" : "OBJ1628",
"n" : "Базовый",
"k" : "1628",
"c" : "5124",
"p" : "1627",
"h" : "0"
}
},
{
"@isFolder" : "0",
"k" : "5131",
"id" : "OBJ5131",
"n" : "Базовый (копия)",
"vis" : "1",
"scenDesc" :
{
"@isShortcut" : "0",
"i" : "OBJ5131",
"n" : "Базовый (копия)",
"k" : "5131",
"c" : "5124",
"p" : "1627",
"h" : "0"
}
},
{
"@isFolder" : "0",
"k" : "5133",
"id" : "OBJ5133",
"n" : "Базовый (копия)",
"vis" : "1",
"scenDesc" :
{
"@isShortcut" : "0",
"i" : "OBJ5133",
"n" : "Базовый (копия)",
"k" : "5133",
"c" : "5124",
"p" : "1627",
"h" : "0"
}
},
{
"@isFolder" : "0",
"k" : "5135",
"id" : "OBJ5135",
"n" : "Базовый (копия)",
"vis" : "1",
"scenDesc" :
{
"@isShortcut" : "0",
"i" : "OBJ5135",
"n" : "Базовый (копия)",
"k" : "5135",
"c" : "5124",
"p" : "1627",
"h" : "0" } } ] } } }
public static MsScenarioTree SetMsScenarioCopy(MsId ms, ulong modelKey, MsScenarioNode sc)
{
sc.isFolder = false;
sc.k = 0;
sc.n = sc.n + " (копия)";
sc.vis = true;
sc.id = "";
sc.p = 0;
sc.moveTo = null;
var setMsOp = new SetMs();
// Задаем параметры выполнения операции
setMsOp.tMs = ms;
setMsOp.tArg = new SetMsArg()
{
pattern = new MsMdPattern()
{scenarios = ListOperation.Add},
meta = new MsMd()
{
scenarios = new MsScenarioTree
{
nodes = new MsScenarioNode[] { sc }
}
},
metaGet = new MsMdPattern() { scenarios = ListOperation.Get }
};
// Создаем прокси-объект для выполнения операции
var somClient = new SomPortTypeClient();
// Выполняем операцию
var result = somClient.SetMs(setMsOp);
return result.meta.scenarios;
}
См. также: