Мне кажется этим действием номер изделия не получить, тут получается сначала идёт обращение к проекту, а не к функции изделия.
Если нужно изделие, я бы сделал так:
Код: Выделить всё
ViewPart v = // ваш вьюпарт обзора модели
Article ART1 = null; // Объект будущего изделия
//Проверяем что есть изделие в трёхмерном объекте
if (v.Source is Function3D)
if ((v.Source as Function3D).ArticleReferences.Count() > 0)
ART1 = (v.Source as Function3D).ArticleReferences.First().Article;
// Далее из ART1 вытаскиваем информацию (номеру для заказа)
if (ART1 != null)
{
String artInfo = ART1.Properties. // нужное свойство
}
Отправлено спустя 7 минут 19 секунд:
Позиция легенды не совсем правильно работает в понятии еплана и наших спецификаций. Если нужно что бы на внешнем виде был проставлен номер согласно порядковому номеру в спецификации, то нужно добавить пользовательскую операцию в модификатор отчёта перечня элементов (групповой спецификации изделий), что бы он включал счётчик и присваивал инкрементное значение каждому следующему пункту с изделием групповой спецификации изделий, и сразу же записывал этот номер в какое-нибудь доп поле функции 3D которую бы он искал по полному ОУ при формировании отчёта.
Далее на обзоре модели помимо ОУ и номере для заказа , можно это доп. поле отобразить.
Таким образом мы получаем:
1. Групповая спецификация изделий с нумерацией с 1 по последнее изделие, без пропусков чисел.
2. При обновлении или генерации отчёта номера позиций обновляются и в функции 3D.
3. На внешнем виде на обзоре модели отображение привязано к свойству блока что позволяет динамически обновлять номера по спецификации при изменениях в перечне элементов.