Разработал библиотеку трубопроводов для пожаротушения компании Fireproff. Скачать её бесплатно сможете по ссылке в конце статьи, а ещё всех, кто прочитает статью, ждёт особый эксклюзив от меня 😉

Пример семейств из разработки
Пример семейств из разработки

Предыстория

В октябре 2018, когда ещё работал в проектной компании, я создавал библиотеку Файерпрофа, так как эти трубы закладывали проектировщики в проекты. Та библиотека в сеть не уходила, была только для внутреннего использования.

При этом в сети гуляли семейства этого производителя, пару раз на них натыкался, слышал отзывы, и они были не очень.

Наши дни

И вот в ноябре 2020 мне скидывают библиотеку на проверку. Открываю, смотрю — действительно, редкое говнище. Часть семейств не работает, часть типоразмеров не соответствует списку производителя, УГО непонятное какое и почти везде — логотип компании, самая тупая и бесполезная вещь, которую иногда и мне приходится добавлять в семейства, потому заказчик так хочет и не переубедишь. В этот раз заказчик поступил мудро.

Разрабатывала эту библиотеку какая-то питерская фирма, название уже не помню. Ребята — говноделы. Ну или просто наняли исполнителя и не повезло, такое тоже бывает. Хотя там дело было не просто в какой-то невнимательности, у меня тоже иногда проскакивают такие косячки, а в концептуально неправильном подходе к семействам.

Теперь с гордостью могу сообщить, что всю библиотеку сделал с нуля и она отличная. Проверял не только я, но и опытный специалист по разделу ВК, специально консультировался с ним, а также допытывался от производителя больше данных, чтобы сделать лучше. Всё, что мог, сделал, ребята, и очень надеюсь, что вам будет удобно работать с библиотекой.

Нюансы

Чтобы эта статья была не только самовосхвалением, но и полезной для читателей, расскажу про некоторые проблемы и то, как их решал.

Вварные сёдла

В Ревите неудобно работать с элементами, которые должны врезаться или ввариваться в трубу: всякие бобышки, манометры и эти самые вварные сёдла. С тройниками работать легко и просто, а вот фитинги и арматура другого типа соединяются не так здорово.

Для таких элементов обычно создаю семейство врезок. Вы можете скачать в блоге семейство обычной стальной врезки, но в данном случае была одна трудность: Ревит при соединении врезки не показывает диаметр магистрали. У врезки на соединителях есть по сути только её диаметр, а диаметра магистрали — нет. При этом сам Ревит видит диаметр магистрали и учитывает его при построении.

Однако мы его подхватить не может. Поэтому приходится идти на уловки. В данном случае конкретная проблема была такая: вварныё седла ограничены не только по своим собственным диаметрам, но и по диаметрам труб, в которые могут ввариваться. Из-за того, что Ревит не видит диаметр магистрали, невозможно сделать таблицу поиска и учесть магистраль. Но как-то ограничить эти диаметры надо.

Поэтому добавил в семействе выпадающий список. Это одновременно и элемент управления, и ограничитель, чтобы пользователь не мог выбрать диаметр, которого нет у производителя. В результате сёдла ставятся в два этапа: сначала формируется седло, а потом у него меняется диаметр магистрали, если он отличается от текущего.

Параметры вварного седла-врезки
Параметры вварного седла-врезки

Чтобы узнать, как такое сделать, — читайте отдельную статью, в которой подробно рассказываю про выпадающие списки в семействах.

Комбинированные фитинги

Следующая проблема — в Ревите нельзя настроить соединения между разными типами труб. Внутри одного типа у нас есть настройки трассировки, а вот между — ничего. Конечно, такая межтиповая настройка была бы довольно громоздкой, это целая матрица на несколько фитингов, но лучше что-то, чем ничего. Интерфейс для пользователя придумать можно... Мечты, мечты. Про настройки трассировки тоже есть отдельная хорошая статья.

Как решаю эту проблему. Если речь идёт про комбинированные муфты с переходом на резьбу — они есть в фитингах Файерпрофа, — то здесь обычно создаю соединительную деталь трубопровода с типом детали «Мультипорт». Все типы деталей разбираю в отдельной статье, там же рассказываю, почему лучше всего подходит именно мультипорт. У этого типа детали есть один минус и один плюс. Минус — такой фитинг придётся вставлять руками на открытый конец трубы, он не врезается в трубу. Плюс — фитинги никогда и никуда не исчезнет при перестроении трассы.

Поскольку переход с одного типа трубы на другой всё равно сопряжён с открытым концом трубы, то не вижу ничего страшного в том, чтобы руками ставить муфты или уголки с переходом на резьбы. А поскольку перечень таких переходных элементов обычно ограничен, то вообще предпочитаю делать их типами на каждую комбинацию диаметров.

Комбинированные элементы по типу
Комбинированные элементы по типу

Теоретически можно делать универсальные семейства, которые будут менять геометрию и параметры для спецификации по галочке. Поставили обычную муфту, нажали на галочку, она превратилась в муфту с резьбой. Но тут другая проблема: мало того, что диаметры могут не совпадать, так ещё и их перечень может отличаться от того, что есть у основного типа трубы.

То есть вот у вас полипропилен, у него диаметры с 16 до 32. Вам нужен переход на резьбу G 1/2", а это обычно уже диаметр 15. Этот диаметр не добавить в настройки трассировки, так как его нет у трубы, поэтому ставить галочки, потом перебивать диаметр или радиус — всё это тоже не супер удобно. Единственное удобство — семейство одно на все случаи. Но мне кажется, быстрее просто вытащить из диспетчера подходящий типоразмер и вставить руками.

Другое дело с тройниками с резьбовыми ответвлениями. Их сделал типом детали «Тройник», чтобы можно было сначала построить обычный тройник, удалить трубу-ответвление, потом поменять тройник на комбинированный, и уже от него рисовать ответвление.

Тут есть риски, что при обновлении трассировки тройник может замениться на стандартный, но просто надо помнить об этом, работать аккуратнее и проблем не будет. Это проще, чем разрывать магистраль, вставлять на открытый конец тройник, потом присоединять с другой стороны второй кусок магистрали и только после рисовать трубу-ответвление. Ну, вот так я думаю.

А вот когда у нас есть чёткий типоразмерный ряд, тогда фитинги лучше делать по CSV-таблице с автоматическим подбором размеров. В данном примере у нас есть бурты с металлическими фланцами. Здесь соответствие строгое: если к бурту пришла труба 90 мм, то через фланец подключится всегда стальная труба с диаметром 80 мм.

В этом случае нам нечего бояться, что какой-то размер не подойдёт, они у нас по факту и так заданы диаметром бурта. Вот тут уже делать типоразмеры не надо, надо делать так, чтобы семейство хватало диаметр с трубы и перестраивалось. Именно так бурты с фланцами и сделал.

Эксклюзив для подписчиков

Невозможно заранее узнать, на каком шаблоне и как работают люди. Кто-то работает на шаблоне АДСК с использованием макросов, кто-то нет. Поэтому в разработанной библиотеке есть только ключевая спецификация, в которую можно внести кучу нужной информации, но с ней две проблемы.

  1. Нельзя использовать общие параметры, только параметры проекта, а значит, нельзя собрать общую спецификацию на трубы и фитинги сразу.
  2. Ключи нужно заполнять у труб вручную, через свойствах трубы или через спецификацию — всё равно вручную. Хоть это и недолго, об этом нужно помнить и делать.

Поэтому я решил написать скрипт в Динамо, который всё сделает за вас. Если надо ключи — заполнит ключи. Если надо просто сформировать наименования, то сформирует и запишет в указанный параметр, по умолчанию «ADSK_Наименование».

Ниже расскажу, что и как можно поменять в скрипте, чтобы адаптировать под свой шаблон и свои формы наименований. Про работу с ключевыми спецификациями читайте отдельную статью.

Все группы пронумеровал, расскажу про каждую отдельно, что она делает и что можно менять под себя.

Группы пронумерованы синими кружочками
Группы пронумерованы синими кружочками

Первая группа скрипта

Первая группа скрипта
Первая группа скрипта

В этой группе берутся все трубы в проекте и выделяются только трубы Fireproff. Делается это фильтрацией по параметру «Спецификация/Тип». Этот параметр добавляется при создании трубы, поменять его нельзя, как и значение в нём. Если хотите менять, то создавайте свой типоразмер труб и меняйте значения во время создания. Как — читайте в статье про создание пользовательских труб.

Вторая группа

Вторая группа скрипта
Вторая группа скрипта

В этом блоке используются два питон-скрипта, код в них менять не надо. Здесь берутся все спецификации из проекта и выделяется та, в которой есть ключи для наших труб. Если вы скопировали в свой проект трубопроводы и ключевую спецификацию для них, а потом переименовали спецификацию, то и в скрипте нужно её переименовать — в красном прямоугольнике нод для текста. Вводите имя спецификации без кавычек.

Третья и четвёртая группы

Группы 3 и 4 скрипта
Группы 3 и 4 скрипта

Объединил, так как они работают совместно друг с другом и с первым блоком. В группе 3 создаётся список ключей для наших труб и назначается трубам. В группе 4 получаем список диаметров, чтобы подать его в группу 4.

По идее ничего менять здесь не нужно.

Пятая группа

Пятая группа скрипта
Пятая группа скрипта

Здесь у трубы заполняются данные по толщине стенки — она вычисляется из внешнего и внутреннего диаметров трубы, длине — берётся из модели с указанным запасом, округляется до 1 знака в метрах, заполняются артикулы и массы погонных метров.

В красном прямоугольнике — параметры, в которых заносятся данные и величина запаса. Ноды подписаны, так что не запутаетесь. В зелёных прямоугольниках — системные параметры трубы, вряд ли их нужно менять, но если почему-то надо, то можете.

Артикулы и массы собираются по данным от производителя простым кодом в питоне.

Если вдруг массы поменялись и вам нужно их актуализировать, то нажмите два раза левой кнопкой мыши по ноду, зайдите в него и вбейте новые числа. На первой картинке с кодом массы — это фиолетовые числа в красном прямоугольнике. Там есть деление на 3, потому что в исходных данных масса была для куска в 3 метра. Если у вас масса уже для 1 метра, то вбивайте её без всяких делений.

В жёлтом прямоугольнике — фиолетовые цифры с диаметрами. На картинке с артикулами они в красном прямоугольнике, можете вбить свой текст.

Питон код для массы
Питон код для массы
Питон код для артикула
Питон код для артикула

Если вам не нужны массы и артикулы, то просто заморозьте или удалите ноды Element.SetParameterByName, которые я отметил на картинке ниже. Чтобы заморозить нод, нужно нажать по нему правой кнопкой мыши и выбрать «Заморозить».

Заморозка нода
Заморозка нода

Шестая группа

Поделил группу на две картинки, слишком длинная. Пометил фиолетовым ноды, на которых распилил картинку
Поделил группу на две картинки, слишком длинная. Пометил фиолетовым ноды, на которых распилил картинку

В этой группе формируется наименование. Для этого получаю с трубы диаметр номинальный, внешний и внутренний. Снова получаю стенку, перевожу значение в текст, то же делаю с номинальным диаметром.

А потом формирую наименование и записываю в параметр трубы.

Формируется всё в Код Блоке по такому шаблону:

Текст + номинальный диаметр + значок «x» + толщина стенки

Формирование наименования трубы
Формирование наименования трубы

Если вам нужна иная форма записи, то отредактируйте этот Код Блок, добавьте свой текст и переменные. В данном случае переменные — это буквы «a» и «b». На вход «a» подаю номинальный диаметр, на вход «b» — стенку трубы, в итоге получаю наименование и записываю в трубу.

Например, если вам надо наименование в виде «Труба ППР армированная DN32», то текст в Код Блоке надо переписать вот так:

"Труба ППР армированная DN" + a

Кавычки обязательны, a — это переменная, у Код Блока появится вход под неё, туда надо подать номинальный диаметр трубы в текстовом виде. Текст склеится и наименование запишется. Если под наименование нужен другой параметр, то измените его с «ADSK_Наименование» на свой.

Вот так работает скрипт, пользуйтесь на здоровье, меняйте так, как удобно.

Данный скрипт распространяется бесплатно, но без моего согласия его нельзя добавлять на какие-либо сайты и ресурсы.

Ссылки

Трубопроводы и фитинги (ссылка на бимлиб)

Скрипт для ключей и наименований

Обновления статей удобно получать в Телеграм-канале «Блог Муратова про Revit MEP». Подписывайтесь и приглашайте коллег. Можно обсудить статью и задать вопросы в специальном чате канала.

Бесплатные обзоры ваших моделей

Раз в две недели провожу «Ревит-линчи» — разбираю файлы семейств и проектов пользователей и отвечаю на вопросы по Ревиту и БИМ-технологиям. Дату и ссылку на Ревит-линч публикую в Телеграм-канале. Приходите, там интересно. Посмотреть записи можете на моём Ютуб-канале.

Отблагодарить автора

Я много времени уделяю блогу. Если хотите отблагодарить меня, то можете сделать небольшой подарок (именно подарок, такой перевод не облагается налогом).