Смысл в том что я пытаюсь объединить две марки в одну подсборку. Т.е. гипотетически у меня есть 2 марки в уровне 0. После объединения новая сборка должна существовать в уровне 0 При том что исходные 2 марки должны быть перенесены в уровень 1.
Для этого вначале я пытаюсь создать пустую сборку, добавить в неё необходимые, задать главную деталь и вставить это дело в модель.
Пробовал так же добавить вначале пустую марку в модель, затем присоединить к ней необходимые.
Если делать так, метод INSERT не работает. Очевидно что я делаю что то не так.
Код: Выделить всё
foreach (var group in groups)
{
TS.Identifier targetMarkGUID = new TS.Identifier(group.Key);
TSM.Assembly targetMark = new TSM.Model().SelectModelObject(targetMarkGUID) as TSM.Assembly;
var fatherObject = targetMark.GetAssembly();
if (fatherObject == null)
{
var newObject = new TSM.Assembly() as TSM.ModelObject;
newObject.Identifier = new TS.Identifier(Guid.NewGuid());
fatherObject = new TSM.Assembly();
fatherObject.Identifier = new TS.Identifier(Guid.NewGuid());
fatherObject.Add(targetMark);
fatherObject.SetMainPart(targetMark.GetMainPart() as TSM.Part);
if (!fatherObject.Insert())
{
MessageBox.Show("Sub-Assembly Insertion failed at target: " + group.Key);
targetMark.Select();
break;
}
............
}
}