Здравствуйте,
Понадобилось получить дерево проекта EPLAN для его передачи в другую программу (сохранения в PDM-систему). Это дерево проекта должно содержать всю иерархию структурных идентификаторов и страниц документации (как в навигаторе страниц). Но дополнительно в дереве внутри узлов структурных идентификаторов должны быть расположенные в них устройства. Т.е. нужно дерево, совмещающее в себе узлы структурных идентификаторов и распределённые по ним узлы страниц документации и устройств.
Подскажите, пожалуйста, позволяет ли API считать древовидную структуру (отношение родительский-дочерний узлы, связь устройства с структурным идентификатором)?
То, что пока нашёл я - в проекте можно считать просто список всех сохранённых в нём структурных идентификаторов класса Location. У Location есть ParentNode/SubNodes, но они действительны только в пределах одного из 7 возможных типов структурных идентификаторов (функциональное присвоение, установка, место сборки, место установки, номер установки, вид документа, определенная пользователем структура). Т.е. родительский/дочерний Location не даёт полного дерева, а только в пределах своего типа. С устройствами тоже проблема с ссылкой на их родительский структурный идентификатор.
Неужели, единственный путь - это анализировать "Имя страницы (идентифицирующее)" для страниц и "ОУ (идентифицирующее)" для устройств, парсить эти строки по разделителям (==, =, ++, +, &, #, /, -) и таким образом строить дерево?
Спасибо.
- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
Получение дерева проекта
Модератор: специалисты Eplan
-
- знаток Eplan
- Сообщения: 3339
- Зарегистрирован: 05 мар 2012, 15:00
- Имя: Горский Андрей Сергеевич
- город/регион: Санкт-Петербург
- Благодарил (а): 179 раз
- Поблагодарили: 368 раз
Получение дерева проекта
Да, все эти данные можно импортировать в xml-файл для дальнейшей передачи в PDM-систему.
Подкрепляю файл, его лучше смотреть в редакторе XML, например XML Notepad 2007 или Notepad ++, предварительно его настроив на древовидную структуру.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Все знания для всех. Поиск знаний священен. Обмен знаниями священен. Копирование священно.
-
- здесь недавно
- Сообщения: 12
- Зарегистрирован: 28 сен 2018, 15:27
- Имя: Владимир
- Благодарил (а): 5 раз
- Поблагодарили: 6 раз
Получение дерева проекта
Здравствуйте, Андрей, спасибо Вам за ответ!
Как я понял из ответа "данные можно импортировать в xml-файл", т.е. получить дерево можно с помощью сформированного xml-файла. А с помощью какой команды (формирования отчёта или команды экспорта) Вы сформировали данный xml-файл?
Перепробовал использовать различные команды из меню EPLAN (например, Проект/Организовать/Экспортировать, Страница/Экспортировать, Сервисные программы/Отчёты, Сервисные программы/Внешняя обработка свойств). Но все они не формируют xml аналогичный Вашему. Получить именно дерево структурных идентификаторов с размещёнными в них устройствами и страницами документации так и не удалось. В xml выводится либо список страниц, либо список устройств.
Или Вы сформировали этот xml-файл не с помощью экспорта или отчёта, а через API "вручную", т.е. в коде анализируя структурные идентификаторы и устройства?
Как я понял из ответа "данные можно импортировать в xml-файл", т.е. получить дерево можно с помощью сформированного xml-файла. А с помощью какой команды (формирования отчёта или команды экспорта) Вы сформировали данный xml-файл?
Перепробовал использовать различные команды из меню EPLAN (например, Проект/Организовать/Экспортировать, Страница/Экспортировать, Сервисные программы/Отчёты, Сервисные программы/Внешняя обработка свойств). Но все они не формируют xml аналогичный Вашему. Получить именно дерево структурных идентификаторов с размещёнными в них устройствами и страницами документации так и не удалось. В xml выводится либо список страниц, либо список устройств.
Или Вы сформировали этот xml-файл не с помощью экспорта или отчёта, а через API "вручную", т.е. в коде анализируя структурные идентификаторы и устройства?
-
- знаток Eplan
- Сообщения: 1457
- Зарегистрирован: 17 окт 2012, 11:24
- Имя: Виталий
- Страна: Беларусь
- город/регион: Минск
- Благодарил (а): 61 раз
- Поблагодарили: 182 раза
Получение дерева проекта
Структурные идентификаторы изначально не предполагают структуры между собой, это разные по назначению сущности. Дерево Еплана строится самим Епланом каждый раз, в зависимости от настроек проекта, и не влияет на проект. Отсюда вывод - структурирование и заполнение в PDM нужно выполнять на стороне вашего ПО, это гораздо проще нежели юзать для этого API. Т.е. получаете все страницы, устройства и идентфикаторы, и уже у себя раскладываете по полочкам.
-
- знаток Eplan
- Сообщения: 3339
- Зарегистрирован: 05 мар 2012, 15:00
- Имя: Горский Андрей Сергеевич
- город/регион: Санкт-Петербург
- Благодарил (а): 179 раз
- Поблагодарили: 368 раз
Получение дерева проекта
Только API, увы, решит эту задачу.
Все знания для всех. Поиск знаний священен. Обмен знаниями священен. Копирование священно.
-
- здесь недавно
- Сообщения: 12
- Зарегистрирован: 28 сен 2018, 15:27
- Имя: Владимир
- Благодарил (а): 5 раз
- Поблагодарили: 6 раз
Получение дерева проекта
Спасибо, Вы подтвердили мои "опасения" насчёт структурных идентификаторов. При отладке кода сначала не мог понять почему у Location ParentNode/SubNodes действительны (не null) только в пределах одного типа структурных идентификаторов. Теперь понял, что структурные идентификаторы формируют лишь "поддерево" в пределах своего типа, а с помощью настроек проекта (Проект/Свойства/Структура/Страницы) можно произвольно менять иерархию узлов в дереве (навигаторе страниц), вплоть до того, что менять местами родительский узел на дочерний и наоборот (кнопки "Переместить вниз"/"Переместить вверх"). В связи с этим, перенос ответственности за построение структуры проекта на сторону разрабатываемого ПО/PDM - отличная идея. Но она меняет правила ведения проекта и требует согласования, это нормально. Например, чтобы человек в ПО/PDM строил дерево, а потом соотносил (настраивал связи) какой узел структурного идентификатора Eplan будет отображаться на узел в PDM.
Хорошо, значит буду реализовывать с помощью API.
Теперь стало понятно, что дерево в навигаторе страниц более гибкое и что можно настроить проект Eplan так, что деревья в навигаторах страниц и устройств будут разные (в плане иерархии структурных идентификаторов). Тогда за основу возьму не страницы, а устройства. Попытаюсь анализировать свойства устройств и построить дерево как в навигаторе устройств. А потом дополню его страницами документации, т.к. по задаче нужно получить единое дерево, совмещающее в себе устройства и документацию.
Спасибо вам за ответы!
-
- знаток Eplan
- Сообщения: 3339
- Зарегистрирован: 05 мар 2012, 15:00
- Имя: Горский Андрей Сергеевич
- город/регион: Санкт-Петербург
- Благодарил (а): 179 раз
- Поблагодарили: 368 раз
Получение дерева проекта
Да, это уже регламент самого PDM. Благо, в большинстве случаев, эти настройки тоже гибки.
Все знания для всех. Поиск знаний священен. Обмен знаниями священен. Копирование священно.