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

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

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

Не размещаю рекламу.
加入频道
Рассказываю итоги вчерашнего эфира

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

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

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

Но для этого недостаточно каждому элементу присвоить свой код, это очень просто, но фактически сработает так же, как работает галочка «Для каждого экземпляра». А мне нужно сгенерировать одинаковый код для каждой позиции с одинаковыми наименованием и маркой. Ну как минимум эти два параметра.

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

Тем не менее, что я вам предлагаю. Я уже выложил для донов первый ролик этой серии. Второй ролик тоже выложу, но нужно понимать, что результата там нет. Разве что посмотреть, как тыкаюсь с Питоном.

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

import clr

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

clr.AddReference('RevitServices')
from RevitServices.Persistence import DocumentManager as DM
from RevitServices.Transactions import TransactionManager as TM

doc = DM.Instance.CurrentDBDocument

def subcomponents(element):
all_subs = []
if hasattr(element, "GetSubComponentIds"):
sub_Id_list = element.GetSubComponentIds()

for sub_Id in sub_Id_list:
sub = doc.GetElement(sub_Id)
if sub.GetSubComponentIds():
all_subs.append(sub)
all_subs.append(subcomponents(sub))
else:
all_subs.append(sub)
return all_subs

mep_systems = UnwrapElement(IN[0])
system_label_parameter = IN[1]

elements_from_system = []

for system in mep_systems:
system_element_list = []
if system.Category.Id.IntegerValue == -2008015: # Системы воздуховодов
system_elements = system.DuctNetwork
elif system.Category.Id.IntegerValue == -2008043: # Трубопроводные системы
system_element_list = system.PipingNetwork
pass

for element in system_elements:
system_name = element.get_Parameter(BuiltInParameter.RBS_SYSTEM_NAME_PARAM).AsString()
system_element_list.append(element)
element_subcomponents = subcomponents(element)

TM.Instance.EnsureInTransaction(doc) # Открытие транзакции
element.LookupParameter(system_label_parameter).Set(system_name)
for sub in element_subcomponents:
sub.LookupParameter(system_label_parameter).Set(system_name)

TM.Instance.TransactionTaskDone() # Закрытие транзакции

system_element_list.extend(element_subcomponents)

elements_from_system.append(system_element_list)

OUT = elements_from_system


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

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

На выходе будет список всех элементов из системы, как обычных, так и общих вложенных. И дальше уже делайте с ними, чего хотите. Код можно вставить в обычный Питон-нод и подавать на два входа список
👍102
Помогают ли вам в работе вложенные семейства радиаторной арматуры в отопительные приборы? Речь про термоклапаны, термоголовки, Н-клапаны, мультифлексы и так далее без привязки к конкретному бренду.
Anonymous Poll
41%
Да, и для бокового, и для нижнего подключения это полезно и помогает
1%
Да, но полезно только для бокового подключения
3%
Да, но полезно только для нижнего подключения
10%
Нет, всегда мешает, лучше делать без вложенной арматуры или дать возможность её отключать
45%
Посмотреть ответы
А ты за что?
😁252👍2
#BIMdigest 110 — Интеграции в AEC
В этом выпуске:
— Autodesk углубляет интеграцию с ArcGIS;
— Archicad 28 - крутая работа с облаками точек и не только;
— скрипт Dynamo, использующий Stable Diffusion для генерации текстур Revit по текстовому промпту;
❄️ Autodesk Revit. Разработка инженерного раздела ОВ ❄️ — новый видеокурс в онлайн-школе BIM2B;
— что делать, если не удаётся найти элемент модели в спецификации;
— Enscape для совещаний с заказчиком;
— обновление Enscape 4.2;
— интервью с создателем That Open Company (ранее IFC.js).
👍4
Forwarded from Mikhail Nikolaev
Из твоего тут фитинги для сшитика, нержа, колбы гейзер премьер)
🔥19
Столкнулся с интерполяцией значений в Ревите

Делаю я ручной балансировочник, у него есть обороты рукоятки. Что-то похожее уже делал для Ридановской балансировочной арматуры, но там задача была проще: был стандартный список значений от 0 до 9.9, надо было выбрать ближайшее большее значение по фактической пропускной способности.

А тут делаю Вальтековский балансир, и у него есть таблица с шагом 5, от 0 до 99. И вот промежуточные значения вычисляются интерполяцией, шаг — 1. То есть по сути тут 99 вариантов для каждого диаметра.

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

Но потом подумал: ну хорошо, сделать в Экселе слишком трудозатратно, а что, если сделать тот же расчёт, но в Ревите?

Для этого мне нужны:
— значение фактической пропускной способности, это легко, параметр расхода есть, требуемый перепад пользователь тоже в параметр вобьёт;

— значение табличной пропускной способности снизу и сверху. То есть, если фактическая пропускная способность 2,28, то надо взять из таблицы ближайшее большее и меньшее значения, а также обороты для них. Для примера пусть это будут 2,21 и 2,37, а обороты 30 и 35;

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

В результате можно простой арифметикой посчитать значение для оборотов: 30 + (2,28 - 2,21) × (35 - 30) / (2,37 - 2,21) = 32.1875, или 32. Получаю обороты искомые. Правда, надо уточнить, тут округлять вверх или можно вниз до целых.

Вся загвоздка в том, как получить значения снизу и сверху. На самом деле, это делается относительно легко. Нам нужно сделать таблицу выбора на все значения для каждого диаметра: пропускная способность — обороты. А далее формулой для таблицы выбора получать значения пропускной способности для каждого табличного значения оборотов. И обороты указывать не из переменной, а прямо числами: 1, 2, 3, ...

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

Для значения снизу нужно идти в обратном порядке, от максимальных оборотов до минимальных. Если при оборотах 99 табличное значение меньше фактического, то обороты 99. Если нет, то спускаемся ниже на 95, 90 и так далее. Как только условие выполнилось — мы получили наше значение снизу.

Ну а дальше арифметика. В создании таких длинных формул отлично помогает Эксель.
5🔥5👍2🗿1
This media is not supported in your browser
VIEW IN TELEGRAM
Просто ветерок твой вентилятор колышет
😁17🔥4
🙂 Привет, ревитчики!

Сегодня продолжение цикла про настройку ВС Кода для программирования на Питоне под Ревит.

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

Ссылка на материал: https://muratovbim.pro/blog/revit-api-podskazki-dlya-raboty-s-kodom/

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

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

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

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

Задонатить в Телеге 💸
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥141👍1🤩1
Дяденька, у вас ширинка расстегнулась.
😁12😢72👍1
Media is too big
VIEW IN TELEGRAM
Тестирую семейство панельного радиатора со встроенной арматурой для бокового подключения.

Будьте осторожны, высокая детализация.
👍10❤‍🔥3🔥1
Media is too big
VIEW IN TELEGRAM
Сравниваю три версии семейства с разным количеством массивов внутри.

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

Либо дать пользователю варианты на выбор, что я и сделал. Тянет комп — берите топ-детализацию. Не тянет — выбирайте варианты поскромнее.

Функционал одинаковый, меняется только внешность. Чего только не сделаешь ради ваших кровных, нажитых непосильным трудом.
👍11😁1
Сегодня твичерю розетки

Так что приходите, буду делать очень круто. А вот получится ли очень круто — узнаем в будущем.

Ставьте огонёчки, кто готов прикоснуться к электроустановочным изделиям в прямом эфире.

19:00 МСК — начало. Сколько эфиров будет, не знаю, но запись смогут посмотреть доны в сообществе ВК.

Твич тут: https://www.twitch.tv/muratovbim
🔥9
За два часа собрал вот таких красавиц.

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

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

Ну и потом самое сложное и интересное — обозначения на плане.

Запись двух часов стрима смогут посмотреть доны в ВК. Само семейство тоже выложу для донов, скорее всего, но это уже когда оно будет готово.
👍28🔥432
Обновление Интероперабилити Тулс для бим-менеджеров, которые им ещё пользуются.

Все официальные установщики на одной странице

Лечения нет, ищите сами, вы же не дети.
🔥4
Всем хороших выходных.

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

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

Ага, конечно.

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

Потом надо закончить крепления, тоже ждут своей очереди, осталось там немного, но надо доделать и оформить всё.

В общем, каждая такая библиотека «ну щас сделаю за денёк» оборачиваются недельной или больше авантюрой.
🔥33👍2
Как-то обсуждали, какую мощность надо брать для формулы, по которой определяем расход жидкости через радиатор.

Я везде вставляю не фактическую мощность прибора, а теплопотери. Потому что так указано в примере в справочнике проектировщика.

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

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

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

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

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

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

Так или не так?

P. S. Скинули формулу из каталога Рифара и книги Покотилова «Системы водяного отопления», там расход жидкости учитывается в отношении к стандартному при испытаниях. Но это отношение домножается на степенной коэффициент, который равен 0,015—0,02, и в итоге, если взять, например 64 кг/час, то падение мощности будет всего около 3 процентов. То есть не то чтобы можно пренебречь, но вклад невелик получается.
👍111
🙂 Привет, ревитчики!

Сегодня статья о новой библиотеке — стальные панельные радиаторы.

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

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

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

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

Так что в моей коллекции радиаторов пополнение, вот полный список библиотек:
Биметаллические радиаторы
Трубчатые радиаторы
Стальные панельные
Регистры из гладких труб
Чугунные секционные радиаторы

Обязательно читайте статью о библиотеке и смотрите видео, его я разместил на всех платформах, куда дотянулся: Ютуб, ВК, Рутуб, Дзен.

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

Ждите уведомлений 14 числа и пишите в комментарии, чьи панельные радиаторы, какого типа и длины, с какой обвязкой обычно закладываете в проекты.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥183👍2
#BIMdigest 111 — Количество и качество
В этом выпуске:
— подход к классификации объектов и выгрузке данных из модели на примере Qonic;
— кодификация объектов для связывания модели и реального элемента здания;
— несколько важных обновлений от BIM2B (модуль «Лестницы», плагин BIM2B Template Tools, библиотека семейств);
— новая библиотека и урок по Dynamo от Муратова;
— новый курс по WPF от Эрика Фритца;
— Джереми Таммик скоро уходит на пенсию, и его заменит... ChatGPT;
— интеграция API SIGNAL DOCS от Попова;
— статья BIM Corner про работу в Navisworks.