Как вы размещаете в модели вертикальные насосы, у которых соосны вход и выход? Как вам удобнее с ними работать? Следующим постом дам картинку для понимания.
Anonymous Poll
19%
Размещаю на замоделированном заранее трубопроводе, добавляю фланцы и готово
36%
Размещаю на плане этажа (на уровне/ на фундаменте) и далее уже из насоса или к насосу веду трубы
20%
Делаю и так, и так, мне без разницы, одинаково удобно
26%
Не работаю с насосами / Посмотреть ответы
Раньше здесь было производство, а теперь — фотостудия и остатки былых систем.
Кому надо вот такие пожарные штуки, забирайте. Разработка настолько элементарная, что даже статью писать не хочу, тут просто нечего рассказывать, всё очень обычно.
Скачать с бимлиба
Скачать с бимлиба
Нас тут 6000 уже, это хорошо. Давайте стрим сделаем
Был запрос на работу с изоляцией — давайте посмотрим, как это можно сделать в Ревите с помощью Динамо и Ревит АПИ.
Снова будут муки Петона и втыкания в VS Code, но зато получится круто, если получится. Мне нужно подготовить обложку для эфира, так что пока ставьте реакты, придёте или будет в записи смотреть.
Начало минут через 10-15. Скину сюда ссылку.
❤️ — приду на онлайн, буду смотреть
🔥 — крутяк, но посмотрю в записи, щас дела
🤝 — это мне не интересно, не мой профиль
Был запрос на работу с изоляцией — давайте посмотрим, как это можно сделать в Ревите с помощью Динамо и Ревит АПИ.
Снова будут муки Петона и втыкания в VS Code, но зато получится круто, если получится. Мне нужно подготовить обложку для эфира, так что пока ставьте реакты, придёте или будет в записи смотреть.
Начало минут через 10-15. Скину сюда ссылку.
❤️ — приду на онлайн, буду смотреть
🔥 — крутяк, но посмотрю в записи, щас дела
🤝 — это мне не интересно, не мой профиль
Код из стрима, выкладываю в этот пост, чтобы вы могли скопировать в Динамо в более старых Ревитах:
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
from System import Guid
doc = DM.Instance.CurrentDBDocument
clr.AddReference('RevitNodes')
import Revit
def getInsulationHost(insulation): # получаем основу с изоляции
host_el_Id = insulation.HostElementId # получили айди хоста изоляции
host_el = doc.GetElement(host_el_Id) # получаем элемент по его айди
return host_el
zapas = IN[0]
param_area_fittings = IN[1]
param_area_set = IN[2]
duct_insulation = []
duct_insulation.extend(FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_DuctInsulations).WhereElementIsNotElementType().ToElements()) # получаем всю изоляцию из активного проекта
duct_ins_host = []
for di in duct_insulation:
duct_ins_host.append(getInsulationHost(di))
TM.Instance.EnsureInTransaction(doc) # Открытие транзакции
for duct_insulation_instance, host in zip(duct_insulation, duct_ins_host):
if isinstance(host, MEPCurve):
di_area = duct_insulation_instance.get_Parameter(BuiltInParameter.RBS_CURVE_SURFACE_AREA).AsDouble() * 0.3048 * 0.3048 * zapas
duct_insulation_instance.LookupParameter(param_area_set).Set(di_area)
elif host.Category.BuiltInCategory == BuiltInCategory.OST_DuctFitting:
if host.LookupParameter(param_area_fittings):
di_area_fitting = host.LookupParameter(param_area_fittings).AsDouble() * 0.3048 * 0.3048 * zapas
duct_insulation_instance.LookupParameter(param_area_set).Set(di_area_fitting)
elif host.Category.BuiltInCategory == BuiltInCategory.OST_DuctAccessory:
host_connectors = host.MEPModel.ConnectorManager.Connectors
connector_list = list(host_connectors)
if len(connector_list) == 2:
first_con_origin = connector_list[0].Origin
second_con_origin = connector_list[1].Origin
con_distance = first_con_origin.DistanceTo(second_con_origin) * 304.8
if connector_list[0].Shape == ConnectorProfileType.Rectangular:
con_height = connector_list[0].Height * 0.3048
con_width = connector_list[0].Width * 0.3048
con_perimeter = 2 * (con_height + con_width)
section_area = con_perimeter * con_distance / 1000
duct_insulation_instance.LookupParameter(param_area_set).Set(section_area)
elif connector_list[0].Shape == ConnectorProfileType.Round:
con_diameter = connector_list[0].Radius * 0.3048 * 2
con_perimeter = 3.14159 * con_diameter
section_area = con_perimeter * con_distance / 1000
duct_insulation_instance.LookupParameter(param_area_set).Set(section_area)
TM.Instance.TransactionTaskDone() # Закрытие транзакции
OUT = duct_insulation, duct_ins_host
Выкладываю скрипт в Динамо, он для Ревита 2023.
Если нужно то же самое в Ревитах помладше, то создайте новый скрипт в нужной версии Динамо, воссоздайте ноды, как в этом скрипте, и вставьте этот код в Питон скрипт.
Он должен работать с системами воздуховодов в шаблонах АДСК. С трубами работать тоже будет, но обрабатывать будет только прямые участки, для труб код нужно дополнять.
Условия работы в системе вентиляции:
1. Обрабатываются прямые и гибкие воздуховоды, фитинги воздуховодов и арматура воздуховодов.
2. Фитинги воздуховодов обрабатываются через параметр экземпляра семейства ADSK_Размер_Площадь. В нём должна внутри семейства считаться площадь детали. Скрипт просто скопирует её, также, как это делает сейчас апдейтер в шаблоне.
3. Чем код отличается, так это возможность обрабатывать канальную арматуру воздуховодов. То есть только ту арматуру, у которой две точки подключения, ни меньше, ни больше.
Скрипт берёт размер соединителя, берёт расстояние между соединителя, получаем периметр по размеру соединителя и длину между соединителями. Перемножаем — получаем упрощённую площадь арматуры.
Например, в сети стоит клапан длиной 100 мм, сечением 300х200 мм. Периметр будет 2 * (300 + 200) = 1 метр. Длина между соединителями — 0.1 м. Произведение даём нам площадь 0.1 м², её пишем в изоляцию. Само собой, что у реального изделия форма будет отличаться от просто куска воздуховода, но у тех же фильтров и клапанов, если не брать в расчёт привод и площадку под него, форма довольна близка к форме обычного воздуховода.
В итоге получаем хоть какой-то приблизительный расчёт, это лучше, чем ничего.
Также есть возможность накинуть запас, можно им тоже поиграться, чтобы подстраховать свои расчёты площади.
Кому пригодится — приятной работы. Если будут ошибки, то сорян, не повезло. Отдельное спасибо Паше Алтынникову 🫶 за напутствия в питонировании этого скрипта.
Если нужно то же самое в Ревитах помладше, то создайте новый скрипт в нужной версии Динамо, воссоздайте ноды, как в этом скрипте, и вставьте этот код в Питон скрипт.
Он должен работать с системами воздуховодов в шаблонах АДСК. С трубами работать тоже будет, но обрабатывать будет только прямые участки, для труб код нужно дополнять.
Условия работы в системе вентиляции:
1. Обрабатываются прямые и гибкие воздуховоды, фитинги воздуховодов и арматура воздуховодов.
2. Фитинги воздуховодов обрабатываются через параметр экземпляра семейства ADSK_Размер_Площадь. В нём должна внутри семейства считаться площадь детали. Скрипт просто скопирует её, также, как это делает сейчас апдейтер в шаблоне.
3. Чем код отличается, так это возможность обрабатывать канальную арматуру воздуховодов. То есть только ту арматуру, у которой две точки подключения, ни меньше, ни больше.
Скрипт берёт размер соединителя, берёт расстояние между соединителя, получаем периметр по размеру соединителя и длину между соединителями. Перемножаем — получаем упрощённую площадь арматуры.
Например, в сети стоит клапан длиной 100 мм, сечением 300х200 мм. Периметр будет 2 * (300 + 200) = 1 метр. Длина между соединителями — 0.1 м. Произведение даём нам площадь 0.1 м², её пишем в изоляцию. Само собой, что у реального изделия форма будет отличаться от просто куска воздуховода, но у тех же фильтров и клапанов, если не брать в расчёт привод и площадку под него, форма довольна близка к форме обычного воздуховода.
В итоге получаем хоть какой-то приблизительный расчёт, это лучше, чем ничего.
Также есть возможность накинуть запас, можно им тоже поиграться, чтобы подстраховать свои расчёты площади.
Кому пригодится — приятной работы. Если будут ошибки, то сорян, не повезло. Отдельное спасибо Паше Алтынникову 🫶 за напутствия в питонировании этого скрипта.
На этой неделе снова статья о разработке семейств для производителя. Так что для вас эти семейства совершенно бесплатны.
Расскажу об особенностях разработки балансировочной арматуры на примере изделий компании Ридан.
Если вы не разрабатываете семейства, то вряд ли вам это будет интересно, можете идти в конец статьи и скачивать семейства.
А если разрабатываете, то это вам пища для размышлений, как делать семейства лучше и удобнее для пользователя.
Читаем, качаем: https://muratovbim.pro/blog/razrabotka-bim-modelej-balansirovochnoj-armatury-ridan/
Please open Telegram to view this post
VIEW IN TELEGRAM
Блог Вадима Муратова
Разработка BIM-моделей балансировочной арматуры Ридан — Блог Вадима Муратова
Расскажу о своей разработке BIM-моделей балансировочной арматуры «Ридан» для систем отопления. Семейства бесплатные, сможете их скачать по ссылке в конце статьи, а я расскажу об особенностях разработки. В разработку вошли следующие модели арматуры: Особенности…
Forwarded from Revit и BIM технологии | BIM2B
#BIMdigest 096 — Вызовы
— вызовы модульного строительства на примере 4 компаний и подходов;
— переход Autodesk от файлов к облавной базе данных;
— требования к ПО для строительной отрасли будущего;
— Autodesk, проектирование и углеродный след;
— AI для архитекторов;
— 5 алгоритмов для апскейла изображений с ComfyUI;
— Revit 2025.2: что нового;
— плагин для создания отделки по помещениям;
— скрипт для работы и изоляцией воздуховодов;
— варианты CDE и правила работы с данными.
— вызовы модульного строительства на примере 4 компаний и подходов;
— переход Autodesk от файлов к облавной базе данных;
— требования к ПО для строительной отрасли будущего;
— Autodesk, проектирование и углеродный след;
— AI для архитекторов;
— 5 алгоритмов для апскейла изображений с ComfyUI;
— Revit 2025.2: что нового;
— плагин для создания отделки по помещениям;
— скрипт для работы и изоляцией воздуховодов;
— варианты CDE и правила работы с данными.
Вопрос к вам есть, ребята.
Если нарисовать букву Р и Т, то это ок, но при отключении тонких линий они превратятся в чёрное пятно.
Ещё есть вариант ввести цветовую индикацию. Например для термометра сделать кружок наполовину синий, наполовину красный. Для манометра сделать кружок черный или ещё какого-то цвета.
Или вообще не нужно ничего делать, всегда можно включить низкую детализация и по УГО разобраться. Или как?
Если нарисовать букву Р и Т, то это ок, но при отключении тонких линий они превратятся в чёрное пятно.
Ещё есть вариант ввести цветовую индикацию. Например для термометра сделать кружок наполовину синий, наполовину красный. Для манометра сделать кружок черный или ещё какого-то цвета.
Или вообще не нужно ничего делать, всегда можно включить низкую детализация и по УГО разобраться. Или как?