Чистая площадь стен в ведомость отделки помещений

Главная Форумы Dynamo Ноды Чистая площадь стен в ведомость отделки помещений

В этой теме 31 ответ, 9 участников, последнее обновление  Анатолий 1 год назад.

Просмотр 15 сообщений - с 16 по 30 (из 32 всего)
  • Автор
    Сообщения
  • #1825 Score: 0

    Alexandr Popov
    Модератор
    43 pts

    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 = list3

    #1826 Score: 0

    kulkul
    Участник
    46 pts

    You can try using below to get window area. Hope it helps.

    In my case i selected only one element with 4 windows.

     

    #1926 Score: 0

    Alexandr Popov
    Модератор
    43 pts

    Доделал скрипт для вычисления чистой площади стен.

    Скачать можно отсюда

    kulkul, you can change these parameters on yours.

    And at the beggining change name of parameters width,hight window and door

    #2496 Score: 0

    Alex
    Участник

    Добрый день, Александр.

    Я попытался воспользоваться нодом для расчета площадей отделки, но скрипт доходит до первого блока скрипта python и dynamo зависает.

    Пробовал и на маленьких и на больших моделях результат такой же

    Revit 2016, dynamo 0.8.3

    Помогите разобраться

    #2502 Score: 0

    Alexandr Popov
    Модератор
    43 pts

    Попробуйте ещё раз скачать, обновил некоторые места, которые в 2016м не работают. Требуется внимательно заполнить поля слева. Если будет ошибка, скиньте скриншот.

    #2511 Score: 0

    Alex
    Участник

    Я скачал скрипт Площадь-стен-для-ведомости-отделки-помещений, скрипты python (3 блока) помечены “deprecated” и не могут работать, также требуется подгрузить узел Tool.setShasebyName. Ну можно без него запустить скрипт. Ранее скрипты питона я восстанавливал по скринам в теме.

    Вы не могли бы выложить содержание скриптов в полном виде

    #2516 Score: 1

    Alexandr Popov
    Модератор
    43 pts

    С Александром мы если что разобрались, проблема решилась переустановкой динамо и скачиванием более актуального скрипта.

    #2970 Score: 0

    Сергей
    Участник

    Tool.GetPhaseByName нету, не подскажете где взять? Выделяет красным.

    #2971 Score: 1

    kulkul
    Участник
    46 pts

    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.

     

    #2972 Score: 1

    Alexandr Popov
    Модератор
    43 pts

    Обновил скрипт, раскрыл этот нод, теперь не требуется его дополнительно скачивать.

    #2973 Score: 0

    Сергей
    Участник

    Спасибо, огромнейшее. Сам я бы не разобрался, наверное никогда.

    #3468 Score: 0

    Максим
    Участник

    Добрый день, Александр!

    @a-popov
    Я немного подучил Python по твоему совету ;)
    После детального изучения данного скрипта, появились некоторые предложения по улучшению и оптимизации.
    Предлагаю обсудить!

    1. Учет запотолочного пространства.
      В главном 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)
    2. Запотолочное пространство переменной высоты (частный случай предыдущего пункта)
      Описанным выше образом данный вопрос решается частично, дело в том, что высота помещения, посчитанная через объем и площадь, получается средней высотой помещения. В случае с потолком переменной высоты получается площадь стен с погрешностью, погрешность тем больше, чем больше разница между отметками уровней потолков.
    3. Окна высотой в два уровня. (Такое случается довольно часто при проектировании жилья и офисов, чаще такие “двух или трехэтажные” окна делаются одним семейством).
      В данном скрипте, окна которые не принадлежат помещению, не учитываются при расчете площади стен. Окно точка вставки которого попадает между помещений (в область перекрытия) вообще не учитывается в расчете.
    4. Витражная конструкция.
      Довольно часто витраж заменяет часть стены или стену целиком. Теоритически эта проблема – частный случай п.3. И решаться должна по аналогии.
    5. Случай когда помещения разделены без стены (к примеру кухня в студии)
      В данном случае площадь этой грани помещения не должна учитываться.
    #3469 Score: 0

    Максим
    Участник

    По поводу пункта 3.


    Удалось получить площадь пересечения через Bounding Box
    При этом окна принадлежащие помещениям нужно получать через GetSurroundigElements


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

    При этом нужно учитывать запотолочное пространство, то есть “виртуальная” геометрия помещения должна строиться по чистой высоте помещения, а не по полной (см. рисунок)

    К сожалению пока есть только идеи.

    #3470 Score: 1

    Alexandr Popov
    Модератор
    43 pts

    Ок, можно обсудить. Я предполагаю, что в ближайшее время Алексей Лобанов поделится своими наработками, он дальше моего ушел, демонстрировал на вебинаре по динамо. Но можно конечно и мой скрипт развивать.

    1. Я в настоящий момент создаю потолки перекрытиями автоматически по параметру в помещениях “Высота потолка”. К данному параметру соответственно и привязываю расчет площади стен. Можно и предложенным вариантом сделать (предлагаете добавить в скрипт?)
    2. думаю в пределах погрешности норм
    3. У окон по-моему точка вставки на уровне пола, не могу представить как она в перекрытии может оказаться. Но то, что окно к нижнему помещению отнесется это да. Было дело долго на эту тему думал, методику расчета придумывал, потом плюнул на 1% помещений проекта решил доп параметром учесть, вручную внести где добавить а где вычесть.
    4. Проблему не вычитания витражей из стен решил довольно просто, создал прозрачные панели в категории Окна (а не в Панели витража, как по умолчанию). Промежуточные панели решил вручную учитывать пока. Но методика частично уже была разработана. Столкнулся с такой проблемой, что чем сложнее вычисления, тем они нестабильнее работают и на одной срабатывают, а на другой косячат. Пока оставил это, предполагая, что на торцах стен и перекрытий должны быть импосты и панели на несколько помещений – это ошибка.
    5. Довольно просто подправить скрипт, чтобы не учитывал, всё руки не доходят. Когда срочно кому-то надо было учесть такой случай, предложил им добавить параметры “Вычесть площадь стены” и “Прибавить площадь стены”. Понимаю, что ручная работа, но всё же не больше 5% помещений с такой ручной настройкой. В одном объекте например у нас границу помещения рисовали перед витражной системой наружной стены, т.е. в этом случае мы в минус по всему бы объекту ушли по отделке. А так в запас пока идет)) Но конечно надо исправить и подчеркну, что возможность искусственной корректировки должна быть и всё в любом случае надо просматривать.

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

    Ну и раз оживили тему, то вот свеженький пример дальнейшей автоматизации 

    видео

    И тестовый вариант доработки, для помещений с точками в номере (например 3.1.2) (пока не обкатал, не уверен в стабильности)

     

    #4294 Score: 0

    Алексей
    Участник

    Здравствуйте!

    Скажите, а что за параметр “Стадия” со значением “Проект”. Стадия возведения?

    У меня  скрипт спотыкается на этом месте.

Просмотр 15 сообщений - с 16 по 30 (из 32 всего)

Для ответа в этой теме необходимо авторизоваться.