Важный опрос! Лучшая песня группы «Звери» по вашему мнению?
Anonymous Poll
17%
Дожди-пистолеты
9%
Для тебя
50%
Районы, кварталы
3%
Слишком молод, чтобы знать группу «Звери»
7%
Слишком стар, чтобы знать группу «Звери»
15%
Люблю другую песню
Media is too big
VIEW IN TELEGRAM
Ну что, ставьте своих клоунов))
Купить такой же мерч, чтобы на улице свои узнавали: https://muratovbim.vsemaykishop.ru/
Добавил новое видео про работу с врезками в курс по фитингам трубопроводов
В 10-минутном видео рассказываю, как формулами получить диаметр магистрали, в которую врезаетесь. Мне это помогло сделать семейства седловых врезок такими, что пользователю не придётся что-то править руками, он сможет сразу врезать трубы друг в друга, диаметры построются и будут меняться корректно, если будут из допустимого диапазона значений.
Кто купил курс ранее, можете смотреть, для вас обновление бесплатно. Кому интересно, покупайте по этой ссылке: https://stepik.org/a/106986
В 10-минутном видео рассказываю, как формулами получить диаметр магистрали, в которую врезаетесь. Мне это помогло сделать семейства седловых врезок такими, что пользователю не придётся что-то править руками, он сможет сразу врезать трубы друг в друга, диаметры построются и будут меняться корректно, если будут из допустимого диапазона значений.
Кто купил курс ранее, можете смотреть, для вас обновление бесплатно. Кому интересно, покупайте по этой ссылке: https://stepik.org/a/106986
Обновления дистрибутивов
Ревит 2025.2 — поставил, проверил, всё работает.
Автокад 2022.15
Автокад 2025.1
Все ссылки здесь: https://muratovbim.pro/blog/revit-ustanovochnye-fajly/
Ревит 2025.2 — поставил, проверил, всё работает.
Автокад 2022.15
Автокад 2025.1
Все ссылки здесь: https://muratovbim.pro/blog/revit-ustanovochnye-fajly/
Как вы размещаете в модели вертикальные насосы, у которых соосны вход и выход? Как вам удобнее с ними работать? Следующим постом дам картинку для понимания.
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