Альтернативный способ получения partFamilyId и partSizeId для Null Structure?

Автор Тема: Альтернативный способ получения partFamilyId и partSizeId для Null Structure?  (Прочитано 8368 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн GermanАвтор темы

  • ADN Club
  • **
  • Сообщений: 84
  • Карма: 13
Соединение труб непосредственно друг с другом реализуется посредством:
Код - C# [Выбрать]
  1. public void ConnectToPipe(
  2.         ConnectorPositionType sourceType,
  3.         ObjectId destinationPipeId,
  4.         ConnectorPositionType destinationType,
  5.         ObjectId structureFamilyId, // ?
  6.         ObjectId structureSizeId, //?
  7.         ref ObjectId newStructureId,
  8.         bool applyRules,
  9.         bool force
  10. )

Требуемые id "нулевого колодца" можно получить посредством итераций, начиная с NetworkId:
NetworkId --> Network --> PartListId --> PartList --> structureFamilyId --> structureFamily --> structureSizeId.

Может подскажите способ побыстрее, так как он один такой неповторимый?
Хочется верить, что у "нулевого колодца" особое место в базе...

Или все-таки алгоритм универсальный и единственный?

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
Хочется верить, что у "нулевого колодца" особое место в базе...
В Civil 3D NET API Reference нет никакого упоминания Null Structure. Скорее всего, этот способ единственный.
Из своего опыта могу сказать, что с этими нулевыми структурами из-за их уникальности больше проблем, чем пользы. Он вроде Null, но имеет форму сферы, которая вылезает везде где надо и не надо - на планах, профилях... маскируя под собой присоединенные трубы независимо от настроек стиля. В какой-то момент мы полностью решили отказаться от их использования, сделали новый пустой элемент "Соединительный элемент" и используем его. К тому же, название "Соединительный элемент" более понятно проектировщикам, чем "Нулевой колодец".

Оффлайн GermanАвтор темы

  • ADN Club
  • **
  • Сообщений: 84
  • Карма: 13
Спасибо, Дмитрий!
И за идею с отказом от него спасибо, интересно, действительно: так как он прыгает по трубам - похоже на ошибку расчета геометрии;
только не хотелось бы плодить количество колодцев-соединителей в зависимости от диаметра(ширины) трубы.
Насколько я понимаю, этот "сферический" колодец подбирает свои габариты под бОльшую трубу, да и "пытается" соединить трубы по вертикали (получается своеобразный вертикальный подъем/спуск).
Или можно создать свой аналог нулевого колодца с таким же поведением и единственного на все типоразмеры труб?


Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
Пожалуйста! Очень радует, что начинает появляться интерес к трубопроводному направлению Civil 3D :)
Не совсем понял Вас. Вроде как нет надобности делать отдельный "соединитель" для разных диаметров труб - он универсален. Его назначение - просто быть коннектором между трубами в плане в местах вертикальных и горизонтальных поворотов. Была бы возможность соединять трубу с трубой - в нем бы вообще не было необходимости. Других функций типа "подбирать свои габариты" у него не должно быть (и у нулевого колодца таких функций вроде не было).
У нас он вообще не имеет никакой собственной геометрии, все настройки отображения - только в стиле, с помощью блоков, слой - непечатаемый. Только для того, чтобы было понятно - есть там соединение или нет его.

Оффлайн GermanАвтор темы

  • ADN Club
  • **
  • Сообщений: 84
  • Карма: 13
Почти понятно, кроме как Вы его "пустой" создали в конструкторе.
На основе какого элемента и какие назначили обязательные параметры?
Можете сколку сделать, если это возможно?

Заранее благодарю, думаю очень пригодится!

PS: по поводу вертикальных участков , конечно нулевой колодец не выход, применяется в данный момент исключительно для визуализации в 3D,
а так уже pressureNetwork в скором будущем вытеснят старые сети-подделки напорных.

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
Это, конечно, мало к программированию относится... :)
Конструктор элементов - Каталог элемента: Колодец - Выбираем главу в каталоге - Жмем "Создать новый параметрический элемент" - Вводим название.
Когда откроется редактор, просто нажать "сохранить" и все - колодец без геометрии создан.

По поводу того, что напорка вытеснит безнапорку - это Вы оптимист, особенно "в скором времени" :) В безнапорке еще куча моментов, которые требуют доработки. А напорку и подавно - еще доделывать и доделывать... Но вот уже 2 версии прошло с момента ее релиза, а улучшений в этом направлении практически нет. Получается, что сейчас напорные сети - инструмент красивой визуализации, но для инженерного проектирования практически неприменимы.

Оффлайн Doublefish

  • ADN Club
  • ****
  • Сообщений: 288
  • Карма: 10
  • AutoCAD Civil 3D
А как интересно потом добавить этот пустой соединительный элемент в список если у него нет параметров?

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
Параметры у него все равно будут. Создать новый элемент без шаблона вряд ли получится, а даже в самом простом шаблоне "элемент общего назначения" есть параметры Wth, SRS, Fth, SVPC и название элемента. Параметры оставляем равными 0, а название элемента меняем на нужное. Соответственно, раз нет списков или диапазонов значений параметров, то такой элемент в семействе будет один. При добавлении в список проблем с ним нет никаких.