Добрый день.
Для работы топологических задач, связанных с инженерными коммуникациями, в Zulu используется линейно-узловая топология. Она подразумевает чередование участков и узлов. Узлы в местах соединения двух участков являются паразитными и совсем не обязательными только на первый взгляд. Если бы вопрос заключался только в поиске пути, то да, можно его было сделать и просто через концы участков. Например, в превращении линейных объектов в площадные так и работает. Но для инженерной сети узлы на концах участков необходимы для технологических расчетов. Именно на них записываются температуры и давления, утечки. Если в участок втекает два потока, то температура в узле слияния не равна температуре на конце какого-то из участков. Она будет равна температуре смеси, и это свойство именно узла.
Иногда геометрически кажется бесполезным разбиение прямого участка узлом, но технологически там может быть смена диаметра, смена изоляции, смена типа прокладки и т.д. Т.е. везде, где меняются тепловые или гидравлические свойства трубопровода, нужно ставить узел. Если же он во всех отношениях кажется ненужным, имеет смысл не узел вставлять, а наоборот, объединить два участка в один.
Поэтому, там где узлы нужны, они нужны и обязательность вставки узлов сохранится. Теперь вопрос, как по возможности удобней автоматически их вставить в места, где их не хватает. В Zulu есть функция Слой\Операции\Преобразовать в сеть. Она для всех выделенных типовых участков ставит на концах узловые объекты указанного типа, там где они отсутствуют. Т.е. можно добавить в структуру, например, тепловой сети в тип Узел или Камера новый режим под названием «Паразитный узел» и указанная процедура посадит его на все «висящие» концы участков.
Если при рисовании в Автокаде трубопровод с точки зрения модели сети разбит на неоправданно много участков, хорошо бы нам сделать функцию, которая бы такие участки сшивала вместе, скажем, от разветвления до разветвления. В принципе это не проблема.
Реальная проблема – это то, что сейчас у нас блоки берутся только как рисунок, а не узел. Сперва сделали как рисунок, т.к. некоторые пользователи иногда засовывали в блок целый город. И как отличить его от узла? Нужен дополнительный диалог при подготовке импорта, где можно указывать, кого и как представлять в Zulu. Если нужно, над этим готовы работать. И над тем, что точки не берутся вообще.
Просто пока никто не просил. Год назад у нас DXF практически вообще не брался.
Насчет MIF. Внутренние семантические данные берутся из MID. Обычно, если в нем передается как атрибут ID объекта, то внешние данные после импорта можно «зацепить».
Вопрос никем ранее не поднимался.
Насчет портирования расчетов под Автокад. Под ArcGIS мы портировали по просьбе DataPlus. Для этого пришлось детально изучить объектную модель ArcGIS, сделать расчетные модули ГИС независимыми, существенно переработь внутренне устройство модулей. DataPlus у нас версию купила. С тех пор за два года не было продано ни одного экземпляра, в то время как под Zulu за это же время продано по воде и теплу более двухсот комплектов.
Отсюда вывод. Самим портировать еще куда-то экономически пока не очень выгодно. У нас есть спецификации программных интерфейсов для тех, кто хочет подключать наши расчеты к своим системам.