Просто о BIM
8.63K subscribers
633 photos
101 videos
63 files
713 links
Простым языком об Информационных технологиях в строительстве (BIM)

Автор канала:
Александр Попов @popov_bim

Для общения и связи с авторами: @bimcomments
Download Telegram
#Подкасты Ну раз взял моду подкасты Аветика @bimskills комментировать, давайте продолжу)

Вышел подкаст Тимофея Лютомского - Пионер.

https://youtu.be/nROzNb4r-h8?si=iemyLCfITX_1Hann

Понравилась идея, что все талантливые и инициативные развиваются и становятся ГИПами, директорами и уходят в девелопмент и мол от того в проектировании проблемы с кадрами. Мол там остаются те, кто готов рутиной заниматься и идейные. Добавлю лишь, что еще в программирование уходят)

самые интересные, на мой взгляд темы начинаются на 39, 49 и 57й минутах.
39:40 Классификатор в PIONEER
49:35 Цели и задачи цифровизации в PIONEER
57:11 BIM в эксплуатации

Классификатор Пионера видел, и считаю что надо поменять подход, но это отдельно обсудим, при этом сперва с Тимофеем.

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

Забавно, как долго говорил что все ПО отечественное, а потом нуу да невис используем, нуу да СОД иностранный. Аветик не спросил: “а модели проектировщиков откуда?” - понятно что Revit.
👍14🔥3🤨31🤩1
#Опрос Яндекс Практикум попросил запостить опрос среди BIM-менеджеров компаний

https://forms.yandex.ru/surveys/13483312.752230853e5f35489dc6f0ddd5a8be38da7f7b5d/

На пару минут, мучить как Вадим вас не будут) видимо им оценить перспективность развития направления курсов.
👍4
И пара практических опросов из нашей сферы: Моделируют ли в вашей компании Архитекторы плинтуса в помещениях на рабочке?
Anonymous Poll
26%
Да
36%
Нет
38%
Посмотреть результаты
Моделируют ли в вашей компании Конструктора несущую арматуру в 3D?
Anonymous Poll
43%
Да
25%
Нет
32%
Посмотреть результаты
Моделируют ли в вашей компании Инженеры подвесы для крепления труб, воздуховодов и лотков?
Anonymous Poll
23%
Да
46%
Нет
32%
Посмотреть результаты
#Практика #Dynamo #Python Попробую начать новую рубрику: учимся программировать в Revit с Dynamo

Ставьте лайки если интересно и продолжать настолько практические посты.

Начну с базы.

1. Открываем Revit - ну тут наверно все ясно
2. Открываем Dynamo - на вкладке Управление
3. Вставляем нод Python script - дада остальные ноды вообще непонятно зачем там
4. Вставляем следующий шаблонный код:
#—————Подключение библиотек—————
import clr
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *
clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *
clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
doc = DocumentManager.Instance.CurrentDBDocument
#—————Взятие элементов—————
rooms = FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Rooms).WhereElementIsNotElementType().ToElements()
#—————Ссылка на BuiltInCategories: http://www.revitapidocs.com/2018.1/ba1c5b30-242f-5fdc-8ea9-ec3b61e6e722.htm

#—————ВХОДНЫЕ ДАННЫЕ—————
els = UnwrapElement(IN[0])

#—————ОСНОВНАЯ ЧАСТЬ КОДА—————
TransactionManager.Instance.EnsureInTransaction(doc)

TransactionManager.Instance.TransactionTaskDone()
#—————Назначьте вывод переменной OUT—————
OUT = "ok"
👍74🥱10🔥74🏆32❤‍🔥1👏1🗿1
#Практика #Dynamo #Python В чате @bim_help появился вопрос: как получить периметр помещения за вычетом дверных проемов. И недавно я обсуждал с коллегами "как можно считать Плинтуса в отделке если не моделировать?" Решил все таки сесть и покодить.
#—————Подключение библиотек—————
import clr
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *
clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *
clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
doc = DocumentManager.Instance.CurrentDBDocument
#—————Взятие элементов—————
rooms = FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Rooms).WhereElementIsNotElementType().ToElements()
doors = FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Doors).WhereElementIsNotElementType().ToElements()
#—————Ссылка на BuiltInCategories: http://www.revitapidocs.com/2018.1/ba1c5b30-242f-5fdc-8ea9-ec3b61e6e722.htm

#—————ВХОДНЫЕ ДАННЫЕ—————
els = UnwrapElement(IN[0])

#—————ОСНОВНАЯ ЧАСТЬ КОДА—————
TransactionManager.Instance.EnsureInTransaction(doc)
#-Выбираем только размещенные помещения
roomlist=[]
for room in rooms:
if room.Area > 0:
roomlist.append(room)
#-Проходимся циклом по всем помещениям
for room in roomlist:
id = room.Id
#-Берем периметр у помещения (можно было и LookupParameter("Периметр") но через BuiltIn стабильнее)
P = room.get_Parameter(BuiltInParameter.ROOM_PERIMETER).AsDouble()
#-Проходим циклом по всем дверям и берем только из той же стадии что и Помещения
for door in doors:
phase = doc.GetElement(door.get_Parameter(BuiltInParameter.PHASE_CREATED).AsElementId())
d1 = door.FromRoom[phase]
d2 = door.ToRoom[phase]
#- Бывали ошибки с получением id помещения, потому пока такое нагородил.
try:
id1 = d1.Id
except:
id1=0
try:
id2 = d2.Id
except:
id2=0
if id1 == id or id2 == id:
#-Берем тип и затем ширину двери
W = doc.GetElement(door.GetTypeId()).LookupParameter("Ширина").AsDouble()
#-Вычитаем из Периметра помещения Ширину двери
P = P - W
#-Записываем в параметр Комментарии (можете поменять на другой) полученное в результате обработки значение периметра. Футы переводим в миллиметры домножив на 304.8 и округлив и переводим в текстовый формат, т.к. параметр текстовый. Если сделать параметр с Типом длина, то переводить ни в Миллиметры ни в Текст не нужно.
room.LookupParameter("Комментарии").Set(str(round(P*304.8)))
TransactionManager.Instance.TransactionTaskDone()
#—————Назначьте вывод переменной OUT—————
OUT = "ok"
👍294🏆1
#Теория Главными трендами в стройке в следующие 10 лет я вижу Уберизацию и Роботизацию.

Уберизация - это появление простых приложений для управления людьми по типу Uber (Яндекс такси), которые заменят собой генподрядчиков и подрядчиков, равно как уберы заменили операторов такси.

Конечно, юрлица и ИП останутся, как и сейчас с таксистами, а ктото и самозанятым работает, но для клиента, его объект будет строить уже «это приложение», компания-бренд. Типа не как вас возит ИП Петров через приложение яндекс такси, а мол будто само яндекс такси.

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

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

Я скорее делаю ставку на роботизированные краны, которые как роборуки монтируют изделия по координатам в точной ориентации. Для этого потребуется повысить жесткость кранов и изолировать площадку работы от людей, а также проработать узлы фиксации. Роботизированные краны будут монтировать блочные конструкции, с металлическим каркасом, изготовленные на заводе другими, уже меньшими станками ЧПУ.
👍20🤔112👏2
#Практика #Dynamo #Python Продолжу учить тех кто наставил столько лайков данной рубрике. И пройдусь по коду сверху вниз, объясняя что откуда и зачем.

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

Библиотеки - это файлы с расширением dll или py в которых содержатся функции для управления какими-то данными и сервисами. Есть папки дефолтные в которых эти библиотеки ищутся динамой, и если там где-то находятся по имени, то подгружаются. Но если файл библиотеки лежит не в дефолтной папке, то потребуется указать clr’у где еще поискать (потом как-нибудь покажу пример).

import clr

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

clr.AddReference('ProtoGeometry')

ProtoGeometry - стандартная библиотека динамо, для работы с геометрией динамо.

from Autodesk.DesignScript.Geometry import *

Из библиотеки ProtoGeometry заходим в группу классов (Пространство имен называется - Namespaces) Autodesk - DesignScript - Geometry и добавляем оттуда все классы, чтобы можно было ими ниже по коду пользоваться. звездочка - * - означает всё.

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

Далее аналогично подгружаем библиотеку RevitAPI - это главная библиотека где все основные методы для работы с элементами в ревите. Если не все то большинство методов с revitapidocs.com находятся в этой библиотеке. Тут взятие свойств, создание элементов, копирования и перемещения и прочее.

clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager

и завершаем сегодняшний обзор RevitServices и сервисами которые мы оттуда подгружаем - это сервис транзакций и документ менеджера для получения объекта открытого документа.

Про транзакции отдельно напишу.
👍47🔥10🥱52
#Практика #Dynamo #Python Продолжаем разбор кода

doc = DocumentManager.Instance.CurrentDBDocument

в переменную doc записываем текущий открытый документ.

Переменной может быть любой текст не взятый в кавычки, в том числе и на кириллице (но так не делают обычно). Т.е. названия переменных вы придумываете сами - можете d = написать, можете document2 =. Но есть забронированные системные операторы и переменные, типа: and, or, if, else и прочие, которые нельзя брать.

Не рекомендуется также переменные называть как классы в различных библиотеках - Wall, List, Document (иначе ниже по коду эти классы вам могут понадобиться, а уже переменной перезаписаны и вы не будете понимать что случилось). Синтаксис кстати учитывается, т.е. wall занимайте смело.

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

Откуда я знаю какие брать атрибуты? я что знаю их наизусть? где посмотреть?

Я обычно копирую подобные команды из предыдущих скриптов, а ищу новые в гугле, просто вводя: Revit Dynamo Python Move element
Revit Dynamo Python Get Type of element

И обычно все методы и атрибуты можно для библиотеки RevitAPI посмотреть на revitapidocs.com

Но для RevitServices и класса DocumentManager там нет описаний методов и атрибутов. Но быстрым поиском в гугле я и такое могу найти, если хочется покопаться и понять весь функционал: https://github.com/DynamoDS/DynamoRevit/blob/master/src/Libraries/RevitServices/Persistence/DocumentManager.cs

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

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

В C# документ берется без RevitServices напрямую из Application.ActiveUIDocument.Document, полагаю что в динамо так нельзя, потому подругому делается.
🔥13🥱4👍2
#ТИМпортозамещение Новости.

На стройках у нас вовсю применяется Искусственный Интеллект, о нем даже Путин, Мишустин и Файзулин говорят. Мол надо развивать, надо контролировать, это будущее, это надо. Вобщем старики не шарят, но хотят быть в тренде. Все говорят - и ты говори.

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

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

Госэкспертизы обязали всех сдавать сметы и пояснительные записки в xml, но потом на ушко проектировщику: «пс, псс, парень, можешь в исходном формате прислать? мы хоть чтото проверим».
😁30😭8👍1🔥1🍌1
This media is not supported in your browser
VIEW IN TELEGRAM
#ТИМпортозамещение Начался ТИМ-конгресс. Прочувствуйте все эмоции которые это вызывает.

*за видео спс @svetlanaopryshko
🤣25🫡10🥴7🦄21🤨1😨1
#Вакансия Менеджер продукта на США

Всем привет, мы в команде SIGNAL планируем пойти захватывать Американский рынок. И у нас для этого есть конкретный план:
1. Подготавливаем контент
2. Публикуем контент
3. Проводим демонстрации всем заинтересовавшимся
4. Продаем лицензии

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

Ищем специалиста для подготовки и публикации контента для продвижения на Американском рынке. Потребуется подготовить много моделей на английском в футах, что-то просто перевести, что-то заново отмоделить, что-то взять из Дубайских кейсов, заполнить классификатор, подготовить календарный график, бюджеты, таблицы маппинга. Затем будем записывать ролики, с компа, со смартфона, на стройке, из офиса, монтировать их, озвучивать на английском. Затем публиковать на Youtube и писать посты в fb, LinkedIn, Instagram, Twitter со ссылками на эти ролики. Мб попробуем TikTok/Shorts/Reels.

Знание Revit, Navisworks
Опыт записи и монтажа видео, а также подготовки текстового контента.
Знание английского на разговорном уровне.
Желание изучить функционал продукта SIGNAL

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

Работа предполагает удаленный формат, но будет преимуществом возможность иногда приезжать в офис в Москве для обсуждения деталей.

Оформление в штат, по ТК все как обычно. По оплате - от 120 т.р./мес. Всем заинтересовавшимся присылать свои резюме мне в ЛС @popov_bim
👍14🤔8💊3🔥2😁2🙉21💅1
This media is not supported in your browser
VIEW IN TELEGRAM
#Новости Чем занимаются строительные издания помимо того что пишут про ТИМ-Конгресс? конечно пишут про СВО.
🦄9👀5🗿5🍌4💊1
#ТИМпортозамещение На СтроимПросто вышла статья об опыте Самолета в пилотировании Renga и NanoCAD. Мне одному между строк читается: "памагити"?

https://stroimprosto-msk.ru/publications/net-predela-sovershenstvu-kak-gruppa-samolet-testirovala-nanocad-i-renga/

Renga:
- продукт можно применять для формирования информационной модели;
- реализована возможность оформления документации;
- есть высокие риски при использовании на крупных объектах – существует вероятность срыва сроков.

Nanocad:
- можно применять для оформления документации;
- невозможно сформировать сложную детальную информационную модель, необходимую для подсчётов объемов работ и материалов.
- значительные увеличения трудозатрат проектировщика при сопоставимых операциях.

По результатам тестирования наши специалисты пришли к выводу, что в данной сфере отечественное ПО работает, но, по сравнению с западными аналогами, значительно замедляет процесс. Должен сказать, что, если бы компания «Самолет» начинала работать с ТИМ только сейчас, то для нас это были бы отличные продукты.


Т.е. иными словами: Если вы уже поработали в нормальном продукте Revit'е, то вы не сможете это пережить. Но если вы не знаете "как может быть", то можете пожрать *овна.

p.s. главный идеолог пилотного проекта в Самолет по применению Renga для ИЖС Юрий Чебелюк ушел в IYNO.
👍24🎄3🗿31😢1👻1
12🔥3💯3🙉3
#Опрос Клуб BIM-лидеров запустил опрос о барьерах в строительной отрасли.

Буквально на 15 мин - без контактов, смс и регистраций. Просьба пройти, кто не прошел еще.

https://docs.google.com/forms/d/e/1FAIpQLSeU1cwOzHTy855cBa5fe9dtbYfflA8f_e471z7bF-efIeqSCg/viewform

Результаты будут подведены на BIM-форуме 12/13 декабря в виде отдельного доклада. Также с нами тоже поделятся в сообществе BIM-лидеров @bimleaders2022 и я репостну.
#Практика #Dynamo #Python Продолжаем разбор скрипта

rooms = FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Rooms).WhereElementIsNotElementType().ToElements()

В переменную rooms записываем все элементы, найденные через FilteredElementCollector из текущего открытого файла, записанного выше в переменную doc. Для получения через коллектор элементов надо указать Категорию через формат OST_Category, указать что только Экземпляры надо брать
WhereElementIsNotElementType()

или Типы
WhereElementIsElementType()

и переводим результат в список элементов.
ToElements()

doors = FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Doors).WhereElementIsNotElementType().ToElements()

Аналогично получаем все двери.
els = UnwrapElement(IN[0])

этот метод из шаблона, чисто динамовский, берет на заданную переменную (в данном случае els) значение поданное в Python Script на IN[0] и при этом это значение превращает в ревитовский формат из динамовского функцией
UnwrapElement()

Такая специфика динамо, что все элементы, которые протекли по проводам, надо переводить (разворачивать) в ревитовские элементы, чтобы применять к ним ревитовские
методы.
TransactionManager.Instance.EnsureInTransaction(doc)

Открытие транзакции. Что такое Транзакция? Если совсем просто - это действие в ревите которое можно откатить Ctrl+Z. Т.е. вы объявляете об открытии транзакции, затем накапливаете различные действия внутри транзакции своим кодом, а потом завершаете транзакцию, закрываете ее и применяете.
TransactionManager.Instance.TransactionTaskDone() 

Если транзакция завершилась успешно, то все изменения применяются, если не успешно, то отменилась или выдала ошибку с вопросом "че делать?".

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

Можете заметить что если вы даже внутри цикла начнете открывать транзакции, то через Ctrl+Z вы потом каждый элемент цикла отдельно не сможете отменить в ревите, т.к. сам процесс динамо также имеет транзакцию на общий свой запуск. Это стандартная защита программ от выполнения зацикливания, чтобы просто ошибку выдать или закрыть ее и не увести компьютер в зависание и переполнение памяти.
OUT = "ok"

Это тоже специфика нода динамо, есть выходные значения, они подаются на OUT в самом ноде. Если через запятую выведете несколько значений, то они выведутся списком.
🔥13🥱43👍2❤‍🔥1
#ГосТИМ Почему вся госуха так ударилась в ИИ? столько конференций об этом, все чиновники только об этом и бубнят общими словами.

Моя гипотеза заключается в том, что во-первых это сейчас общий мировой тренд. Не только у нас хайп, но и в целом в мире: это сейчас считается самым инновационным, а остальное мол «скучным», обыденностью. Конференции Autodesk и Graphisoft можно сказать на 90% посвящены ему.

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

Т.е. я ожидаю что все программные продукты за гос счет должны будут иметь у себя хотябы на 0,0001% какую нибудь функцию чтобы сказать: «с применением ИИ». Хотябы пароль пользователю для входа генерировать. А каждое выступление это будет про ИИ который в разработке, но не доступен пользователям или там гдето на серверах чтото помогает, но вот наш обычный функционал для пользователей.
💯148👍5😁5🫡2👏1
#Подкасты Петр Манин дал интервью Аветику @bimskills

В нем поднял вопрос зарплат, но на экране не перевели в доллары (и рубли):

Зарплаты инженеров в Дубае
https://youtube.com/shorts/tVOx96MG4lg

7000 AED = $1900 (175 т.р.)
10000 AED = $2700 (250 т.р.)
15000 AED = $4100 (375 т.р.)

При этом добавлю, что жизнь в центре Дубая раза в 3 дороже чем в Москве. Средняя поездка такси 70-100 AED (1700-2500 р.)

Капучино в старбаксе 20 AED (500 р.)

Позиции в меню кафе начинаются от 50 AED (1250 р.)

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

А стоимость нормальных квартир

1комн. (у нас бы называлась двушка) - 100k AED/год (2,5 млн.р./год - это 210 т.р./мес)

2комн. - 130k AED (3,2 млн. р./год - это 270 т.р. в мес.)

Студии на дубизле висят от 60k AED/год (1,44 млн. р./год или 120 т.р./мес) , но большинство - это фейк.

Но есть гос апарты (там реально 60), т.е. прям от государства в хороших районах прям в центре (н-р интернет сити). Там очень хорошие стоимости (они прям держат) и качество (я не ожидал, не привычно так скажем, что государственное может быть хорошим).

Еще могут не входить в эти стоимости подключение кондея и прочие уплаты + 10k AED (250 т.р.)

Как видите зарплаты только, что квартиру и покрывают, потому обычно к такой зп прилагается квартира, а если квартиру самому снимать, то от 15k AED только зп хватит и стартовый капитал для первой оплаты за год.

Еще у русских сейчас может быть вопрос как деньги переводить - если что пишите мне @popov_bim - проконсультирую)

Само интервью тут: https://youtu.be/L7HAkhkL-PA
👍193😢3👏1🤝1