Блог Муратова про Revit MEP
7.51K subscribers
1.59K photos
93 videos
17 files
1.71K links
Вадим @Vadim_Rafi — раньше ОВэшник, теперь BIM-менеджер и препод. Блог про Ревит — muratovbim.pro

Чат для вопросов: @revitask

— Создаю семейства для Ревита.
— Обучаю моделировать разделы ОВ, ВК, ТМ.

Не размещаю рекламу.
Download Telegram
Иногда полезно вылезти из-за компа и посмотреть на реалии.

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

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

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

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

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

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

Вот: https://muratovbim.pro/product/kuhonnye-zonty/
СЕГОДНЯ ПРЯМОЙ ЭФИР ПО РАЗРАБОТКЕ СЕМЕЙСТВ

Братья и сестры во софте! Сегодня, 04.03.2025 года в 19:00 МСК, проведу прямой эфир на Твиче.

Что там будет и почему не по шаблонам. Там будет разработка реального семейства для реального заказчика, а модели ему реально надо получить до конца недели. Реально буду реальными руками делать реальный заказ.

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

Сегодня делаем щелевой диффузор с КСД с регулируемым количеством подключений. Количество щелей тоже регулируется.

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

Вообще, у меня есть бесплатный курс про такое семейство. Непривычно, конечно, видеть слово «бесплатно» в канале Муратова, ну да что ж поделать, ничто человеческое мне не чуждо. Вот курс: https://stepik.org/course/185148

Итак, до встречи на Твиче: https://www.twitch.tv/muratovbim

Кто будет онлайн — ставьте огонёчки. Запись смогут посмотреть доны в ВК.
Вчера я вам втирал, как классно упростил алгоритм для расстановки креплений после того, как прилёг на кровать.

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

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

Поэтому уйти от работы с геометрией нельзя. Поэтому вернул в алгоритм проклятые солиды. Немного переработал обработку пересечений, стало попроще, но ключевой момент остался — плита обрабатывается как геометрия с проецированием точек на неё вдоль оси Зэд.

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

Значит, можно пулять в неё точки, определять расстояния и тянуть шпильки. Правда, это потребует от проектировщика аккуратности в моделировании, на картинке слева вверху видно, как шпильки улетели на этаж выше. Потому что в плите, куда по идее должны были прилететь шпильки, отверстие, соответственно, шпилькам некуда крепится.

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

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

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

Собственно, а чего же зависло Динамо? А такое бывает, когда обрабатываешь списки на полмиллиона позиций. Если переводить это в строки таблицы выбора, которую я в Динамо и пытался сгенерировать, то это уже не так много строк, в моём случае было 116 тысяч с небольшим.

Это слишком большое количество для семейства. В таблице такого размера поиск будет идти очень долго, каждое изменение параметра, даже не связанного с марками, будет приводить к подписаниям.

Какое же решение? Нужно разбивать такие таблицы на несколько. Судя по всему, для Ревита критично не количество таблиц, а размер той конкретной, по которой он ведёт поиск. Поэтому после того, как Ревит и Динамо закрылись без сохранения данных, я вновь накидал скрипт, но теперь сделал его умнее.

Вместо того, чтобы генерировать сразу всё, я добавил нод, которым могу управлять количеством строк. И сам алгоритм оттестировал на небольшом количестве длин решётки. Три длины давали 72 строки или 360 позиций в списке. Собрал тестовые данные, проверил экспорт в Эксель — всё работает.

Дальше я решил не вбивать сразу всё количество длин, а как раз-таки разбить на несколько таблиц варианты по длинам решётки. Выбрал разбивку на 8 таблиц. Получились таблицы по 600 строк, восьмая на 650. На тот момент не было уверенности, что это будет работать прям быстро, как хотелось бы.

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

if(L < 751, "ЛРЩ 150-750",
if(L < 1351, "ЛРЩ 751-1350",
if(L < 1951, "ЛРЩ 1351-1950",
if(L < 2551, "ЛРЩ 1951-2550",
if(L < 3151, "ЛРЩ 2551-3150",
if(L < 3751, "ЛРЩ 3151-3750",
if(L < 4351, "ЛРЩ 3751-4350",
"ЛРЩ 4351-5000")))))))


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

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

Для массивов я вкладываю семейство патрубка. Потом он, соответственно, множится по количеству нужных мне точек входа в камеру. Идея простая — вложить треугольник в патрубок. Где не надо, оно будет скрываться, где надо — отображаться. Для плана сделал символическими линиями, для 3Д — линиями модели. И в итоге я не парюсь о том, как управлять количеством треугольников, всё происходит само. Дал пользователю возможность управлять размером треугольника и отступом и от диффузора и всё, отличное решение.

Запись эфира доны смогут посмотреть в ВК. Ну а те фишки, что не показал на эфире, рассказал здесь для всех.
💿 ОБНОВЛЕНИЕ В СКРИПТАХ ПО РАЗДЕЛЕНИЮ ТРУБ И ВОЗДУХОВОДОВ

Изменения следующие:

1. Ушёл от системы двух версий скриптов. Теперь версия одна, для Ревита 2019. В более новых версиях тоже будет работать, но с Ревита 2023 надо доставить один пакет в Динамо. В файлах библиотек есть инструкция, как это сделать.

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

Это вообще какая-то дурацкая магия. В одной модели запускаешь — всё режется идеально. Запускаешь в другой или в другой версии Ревита — выдаёт ошибку. Тот же алгоритм, всё то же, ан нет, ошибки.

3. Добавил для воздуховодов улучшенную проверку длины. Теперь не должно быть ситуации, когда длина воздуховода чуть больше той, на которую надо делить, но при этом недостаточно большая, чтобы разделиться. Такое вполне возможно, если длина деления 1250, а фактическая длина воздуховода в модели 1251 мм, например. Теперь такие воздуховоды не должны обрабатываться. Это довольно редкая ситуация, на тестах она не возникала, поэтому пропустил момент.

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

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

Но я не плачу, я держусь.

Кто покупал ранее — скачивайте в личном кабинете обновление.

Скрипт для деления труб: https://muratovbim.pro/product/skripty-dynamo-delenie-truboprovodov-na-otrezki/
Скрипт для деления воздуховодов: https://muratovbim.pro/product/dynamo-delenie-vozduhovodov-na-otrezki/

Статья о разработке: https://muratovbim.pro/blog/dynamo-biblioteka-razdelenie_truboprovodov_i_vozdukhovodov_na_otrezki/
Please open Telegram to view this post
VIEW IN TELEGRAM
Взгляните, какую красоту делают на моих семействах креплений для трубопроводов.

Ссылка в магазин: https://muratovbim.pro/product/biblioteka-krepleniya-dlya-truboprovodov/

Единственное, что тут можно улучшить — использовать ещё больше моих семейств 🙂
Please open Telegram to view this post
VIEW IN TELEGRAM
ЗАВТРА ПРЯМОЙ ЭФИР ПО ШАБЛОНАМ

6 марта в 19:00 МСК проведу очередной прямой эфир.

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

И вот уже после этого будем настраивать виды, фильтры, шаблоны видов.

Если чувствуете, что плаваете в теме фильтров видов, а это важно для работы, то попробуйте мой мини-курс на Степике, можно оплатить в том числе зарубежными картами. С Украины платежи тоже проходят.

А что же с курсом по созданию шаблона? Рассказываю.

Я думаю сделать его модульным. До сих пор я работал над «фоновыми» элементами шаблона: всякие линии, настройки полутонов, размеры и высотные отметки, тексты, уровни и оси, дальше добавятся ещё разрезы и фрагменты плана. Пять с лишним часов видео про такие важные, но всё же второстепенные элементы. Ну, кроме разрезов, их вы видите часто при работе, а всё остальное — такие вот фоновые настройки, с ними редко взаимодействуют. Поэтому первый модуль будет как раз про вот это вот всё.

Дальше уже будут модули про работы с видами, с семействами, автоматизация и так далее.

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

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

Тому бесплатный реакт на сообщении от меня.
Слева — обычная железка.

Справа — восхитительная жизнь.
Питон-код для обращения к связанной модели

На вход IN[0] Питон-нода подаём связанную модель. Её можно выделить через нод Select Model Element.

import clr

clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *

sel = UnwrapElement(IN[0]) # берем в переменную связанную модель

linkdoc = sel.GetLinkDocument() # получаем документ связанной модели

elems = FilteredElementCollector(linkdoc).OfCategory(BuiltInCategory.OST_Floors).WhereElementIsNotElementType().ToElements() # получаем все перекрытия из связанной модели. Если нужны элементы других категорий, то вместо OST_Floors впишите внутреннее имя другой категории

OUT = elems # выводим из нода полученные элементы из связи


Я когда-то где-то его нашёл в интернете, он мне помог. Теперь делюсь с вами.
Сегодня, 6 марта, прямой эфир по шаблону ИЖС

На Твиче в 19:00 МСК → https://www.twitch.tv/muratovbim

Пока вот вспоминаю про разрезы и фрагменты, тренируюсь, чтобы быстрее подать информацию. Рисую вот всякие варианты.

Вот такой как вам для разреза, изысканно или фу, говно?

Ставьте ❤️, если изысканно.
Ставьте 💔, если фу.

Ставьте ещё и 🔥, если придёте на эфир вживую.
💔 ИСПРАВЛЕНИЕ ОШИБОК В ТРУБЧАТЫХ РАДИАТОРАХ

Там была ошибка при выборе Г-образных трубок на металлопласт при угловом Н-клапане.

Поправил.

Будь проклят тот день, когда я решил поменять арматуру в этих радиаторах.

Скачивайте в личном кабинете.

https://muratovbim.pro/product/trubchatye-radiatory/
Forwarded from Роман Лавров
Доброго дня, всё забываю чёнить тоже показать из вашего
Брат, купи ей хинкалей. Будь романтиком 🥰
#BIMdigest 128 — Зрелость модели и координация
— восьмой принцип BIM из BIM-манифеста;
— уровень зрелости BIM-модели: статус-коды, MMI и работа по статусам;
— BIM в эксплуатации и за рубежом с Ильёй Беленьким;
— гайд по созданию простой проверки в Revit Model Checker;
— нереально красивый проект с адаптивными семействами;
— новый цикл видео от Гэвина Крампа - программирование на C#;
— календарно-сетевые графики в SAREX;
— и другие полезности!
Media is too big
VIEW IN TELEGRAM
🙂 Привет, ревитчики!

Сегодня очередная платная библиотека — крепления воздуховодов.

В библиотеке крепления для прямоугольных и круглых воздуховодов. Для кругляка хомуты, для прямоуголки траверсы, кронштейны L- и Z-типа. Для хомутов и траверс сделал вариант с креплением к профлисту V-образными кронштейнами.

Если библиотека будет пользоваться спросом, то добавлю крепления к профлисту и для остальных кронштейнов. Это несложно, просто непонятно, а нужно ли это пользователям. Сюда же и всякая перфолента для бомж-монтажа.

В библиотеке есть и скрипт для автоматической расстановки креплений. В статье и в видео рассказываю, как они работают. Видео прикрепляю ещё и сюда.

Читать о библиотеке: https://muratovbim.pro/blog/revit-biblioteka-krepleniya-vozduhovodov/

Купить крепления: https://muratovbim.pro/product/biblioteka-krepleniya-dlya-vozduhovodov/

Спасибо за репост в профильные чаты и коллегам-ревитчикам 🫶

Блог | Магазин | Курсы | Мерч

Чат в Телеге для вопросов 📱

Сообщество VK 📱 | Эфиры на Твиче 📱

Задонатить в Телеге 💸
Please open Telegram to view this post
VIEW IN TELEGRAM
Что думаете о мини-курсе по Динамо?

Ранее выпустил мини-курс по семействам для новичков: https://t.me/revitblog/2906

Теперь вот подумал, может, есть смысл сделать что-то в подобном формате, но по Динамо? Я много раз показывал работу в нём на прямых эфирах, но что, если оформить всё в формате «для самых маленьких пользователей»? Час-полтора видеоурока максимум. Соответственно, курс будет недорогим, в районе 1000 рублей.

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

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

Есть смысл записывать такое? Выскажитесь реактами или в комментариях.

👍 — да, интересно

👎 — нет, не нужно