При добавлении труб и колодцев в трубопроводную сеть Civil 3D назначение имен выполняется автоматически по шаблону. Обычно этого достаточно при первом размещении, однако в будущем по мере развития проекта эти имена потребуется изменить. Кроме того, существует множество разных шаблонов именования, таких как последовательное именование колодцев на участке трубопровода, начиная с самого дальнего, или именование в соответствии со схемой данных, принятой местными надзорными органами. В этом примере показано, как с помощью Dynamo можно определить стратегию именования и придерживаться ее.
Работа с ограничивающими рамками
Фильтрация данных с помощью узла List.FilterByBoolMask
Сортировка данных с помощью узла List.SortByKey
Создание и изменение текстовых строк
Этот график будет работать в Civil 3D 2020 и более поздних версиях.
Сначала скачайте файлы примеров ниже, а затем откройте файл DWG и график Dynamo.
Ниже представлен обзор логики, используемой в этом графике.
Выбор колодцев по слою.
Получение местоположений колодцев.
Фильтрация колодцев по смещению с последующей сортировкой по пикетам.
Создание новых имен.
Переименование колодцев.
Приступим!
Сначала необходимо выбрать все колодцы, с которыми мы планируем работать. Для этого просто выберем все объекты на определенном слое. Это означает, что мы сможем выбрать колодцы из разных трубопроводных сетей (при условии, что они находятся на одном слое).
Этот узел позволяет избежать случайного извлечения нежелательных типов объектов, которые могут находиться на том же слое, что и колодцы.
Теперь, когда мы выбрали все колодцы, нужно определить их положение в пространстве, чтобы рассортировать их по местоположению. Для этого воспользуемся ограничивающей рамкой каждого объекта. Ограничивающая рамка объекта — это рамка минимального размера, которая полностью включает геометрические границы этого объекта. Вычислив центр ограничивающей рамки, мы получим приближенное значение точки вставки колодца.
Мы используем эти точки для получения пикетов и смещений колодцев относительно выбранной трассы.
Здесь начинаются сложности. На данный момент у нас есть большой список всех колодцев на слое, который мы указали, и мы также выбрали трассу, вдоль которой их требуется отсортировать. Проблема в том, что в списке могут быть колодцы, которые не нужно переименовывать. Например, такие колодцы могут не принадлежать к интересующей нас ветви.
Выбранная трасса.
Колодцы, которые требуется переименовать.
Колодцы, которые следует игнорировать.
Нужно отфильтровать список колодцев, чтобы проигнорировать те из них, чье смещение от трассы превышает определенное значение. Для этого лучше всего подойдет узел List.FilterByBoolMask. Отфильтровав список колодцев, используем узел List.SortByKey для их сортировки по значениям пикетов.
Если вы еще не знакомы со списками, см. раздел Работа со списками.
Проверка значения смещения колодца относительно порогового значения.
Замена всех нулевых значений на false.
Фильтрация списка колодцев и пикетов.
Сортировка колодцев по пикетам.
Последний шаг — создание новых имен для колодцев. Мы используем следующий формат: <alignment name>-STRC-<number>
. Здесь есть несколько дополнительных узлов, которые при необходимости добавляют дополнительные нули (например, 01 вместо 1).
Наконец, мы может переименовать колодцы.
Ниже приведен пример запуска графика с помощью проигрывателя Dynamo.
Если вы еще не знакомы с проигрывателем Dynamo, см. раздел Проигрыватель Dynamo.
Вместо того чтобы сразу переходить к итоговому результату, можно использовать фоновый просмотр 3D в Dynamo для визуализации промежуточных результатов графика. Например, можно с легкостью отобразить ограничивающие рамки колодцев. Кроме того, в документе этого набора данных есть коридор, так что мы можем добавить геометрию характерных линий коридора в Dynamo, чтобы создать контекст для размещения колодцев в пространстве. Если применить этот график к набору данных, в котором нет коридоров, эти узлы просто не будут выполнять никаких действий.
Теперь мы можем наглядно увидеть, как работает процесс фильтрации колодцев по смещениям.
Вот несколько вариантов того, как можно расширить возможности этого графика.
Переименование колодцев на основе ближайшей трассы вместо выбора конкретной трассы.
Переименование труб в дополнение к переименованию колодцев.
Задание слоев для колодцев на основе их ветвей.
Переименование колодцев трубопроводной сети в порядке, соответствующем пикетажу трассы.
Миссия выполнена!