Чистая площадь стен в ведомость отделки помещений
- В этой теме 31 ответ, 9 участников, последнее обновление 8 лет, 2 месяца назад сделано Анатолий.
-
АвторСообщения
-
And “Удалить дубликаты”
import clr
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *
#Введенные в этом узле данные сохраняется в виде списка в переменных IN.
list1 = IN[0]
list2 = IN[1]
S2 = IN[2]
i=0
count1=list1.Count
count2=list2.Count
list3=[]
while i<count1:
j=0
while j<count2:
if list1[i]==list2[j]:
S=S2[j]
j=j+1
list3.append([list1[i],S])
i=i+1
#Назначьте вывод переменной OUT.
OUT = list3You can try using below to get window area. Hope it helps.
In my case i selected only one element with 4 windows.
Доделал скрипт для вычисления чистой площади стен.
Скачать можно отсюда
kulkul, you can change these parameters on yours.
And at the beggining change name of parameters width,hight window and door
AlexУчастникДобрый день, Александр.
Я попытался воспользоваться нодом для расчета площадей отделки, но скрипт доходит до первого блока скрипта python и dynamo зависает.
Пробовал и на маленьких и на больших моделях результат такой же
Revit 2016, dynamo 0.8.3
Помогите разобраться
Попробуйте ещё раз скачать, обновил некоторые места, которые в 2016м не работают. Требуется внимательно заполнить поля слева. Если будет ошибка, скиньте скриншот.
AlexУчастникЯ скачал скрипт Площадь-стен-для-ведомости-отделки-помещений, скрипты python (3 блока) помечены “deprecated” и не могут работать, также требуется подгрузить узел Tool.setShasebyName. Ну можно без него запустить скрипт. Ранее скрипты питона я восстанавливал по скринам в теме.
Вы не могли бы выложить содержание скриптов в полном виде
АнонимНеактивированныйTool.GetPhaseByName нету, не подскажете где взять? Выделяет красным.
Hi Sergei,
You can get Tool.GetPhaseByName from Steam nodes package.
Or you can use Pyhton Script to get elements by phase. Below is an example of Rooms.
Обновил скрипт, раскрыл этот нод, теперь не требуется его дополнительно скачивать.
АнонимНеактивированныйСпасибо, огромнейшее. Сам я бы не разобрался, наверное никогда.
МаксимУчастникДобрый день, Александр!
@a-popov
Я немного подучил Python по твоему совету ;)
После детального изучения данного скрипта, появились некоторые предложения по улучшению и оптимизации.
Предлагаю обсудить!- Учет запотолочного пространства.
В главном Python скрипте для расчета площади стен в помещении используется Параметр “Полная высота”, что исколючает возможность использования потолков в проекте.
for room in rooms:
if UnwrapElement(room).Area>0:
S=UnwrapElement(room).Parameter["Perimeter"].AsDouble()*UnwrapElement(room).Parameter["Unbounded Height"].AsDouble()/3.2808/3.2808
i1=0
count1=room1.Count
roomid=UnwrapElement(room.Id)
Исправить удалось заменив способ подсчета высоты помещения методом деления Объема помещения на его Площадь
for room in rooms:
if UnwrapElement(room).Area>0:
S=UnwrapElement(room).Parameter["Perimeter"].AsDouble()*UnwrapElement(room).Parameter["Volume"].AsDouble()/UnwrapElement(room).Parameter["Area"].AsDouble()/3.2808/3.2808
i1=0
count1=room1.Count
roomid=UnwrapElement(room.Id) - Запотолочное пространство переменной высоты (частный случай предыдущего пункта)
Описанным выше образом данный вопрос решается частично, дело в том, что высота помещения, посчитанная через объем и площадь, получается средней высотой помещения. В случае с потолком переменной высоты получается площадь стен с погрешностью, погрешность тем больше, чем больше разница между отметками уровней потолков. - Окна высотой в два уровня. (Такое случается довольно часто при проектировании жилья и офисов, чаще такие “двух или трехэтажные” окна делаются одним семейством).
В данном скрипте, окна которые не принадлежат помещению, не учитываются при расчете площади стен. Окно точка вставки которого попадает между помещений (в область перекрытия) вообще не учитывается в расчете. - Витражная конструкция.
Довольно часто витраж заменяет часть стены или стену целиком. Теоритически эта проблема – частный случай п.3. И решаться должна по аналогии. - Случай когда помещения разделены без стены (к примеру кухня в студии)
В данном случае площадь этой грани помещения не должна учитываться.
МаксимУчастникПо поводу пункта 3.
Удалось получить площадь пересечения через Bounding Box
При этом окна принадлежащие помещениям нужно получать через GetSurroundigElements
Но это не совсем будет работать, предположим если стены будут расположены не в плоскости глобальных координат или по кривой линии.
Может быть есть какой то способ получить площадь пересечения “виртуальной геометрии”?При этом нужно учитывать запотолочное пространство, то есть “виртуальная” геометрия помещения должна строиться по чистой высоте помещения, а не по полной (см. рисунок)
К сожалению пока есть только идеи.
Ок, можно обсудить. Я предполагаю, что в ближайшее время Алексей Лобанов поделится своими наработками, он дальше моего ушел, демонстрировал на вебинаре по динамо. Но можно конечно и мой скрипт развивать.
- Я в настоящий момент создаю потолки перекрытиями автоматически по параметру в помещениях “Высота потолка”. К данному параметру соответственно и привязываю расчет площади стен. Можно и предложенным вариантом сделать (предлагаете добавить в скрипт?)
- думаю в пределах погрешности норм
- У окон по-моему точка вставки на уровне пола, не могу представить как она в перекрытии может оказаться. Но то, что окно к нижнему помещению отнесется это да. Было дело долго на эту тему думал, методику расчета придумывал, потом плюнул на 1% помещений проекта решил доп параметром учесть, вручную внести где добавить а где вычесть.
- Проблему не вычитания витражей из стен решил довольно просто, создал прозрачные панели в категории Окна (а не в Панели витража, как по умолчанию). Промежуточные панели решил вручную учитывать пока. Но методика частично уже была разработана. Столкнулся с такой проблемой, что чем сложнее вычисления, тем они нестабильнее работают и на одной срабатывают, а на другой косячат. Пока оставил это, предполагая, что на торцах стен и перекрытий должны быть импосты и панели на несколько помещений – это ошибка.
- Довольно просто подправить скрипт, чтобы не учитывал, всё руки не доходят. Когда срочно кому-то надо было учесть такой случай, предложил им добавить параметры “Вычесть площадь стены” и “Прибавить площадь стены”. Понимаю, что ручная работа, но всё же не больше 5% помещений с такой ручной настройкой. В одном объекте например у нас границу помещения рисовали перед витражной системой наружной стены, т.е. в этом случае мы в минус по всему бы объекту ушли по отделке. А так в запас пока идет)) Но конечно надо исправить и подчеркну, что возможность искусственной корректировки должна быть и всё в любом случае надо просматривать.
По поводу идей как можно с геометриями играться и пересечениями, я скрипт давненько выкладывал Теплотехнический расчет, там вот я пытался через Geometry много чего насчитать.
Ну и раз оживили тему, то вот свеженький пример дальнейшей автоматизации
И тестовый вариант доработки, для помещений с точками в номере (например 3.1.2) (пока не обкатал, не уверен в стабильности)
АлексейУчастникЗдравствуйте!
Скажите, а что за параметр “Стадия” со значением “Проект”. Стадия возведения?
У меня скрипт спотыкается на этом месте.
- Учет запотолочного пространства.
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.