Достаем плотность слоев материалов для стенки

Главная Форумы Python Синтаксис и родные библиотеки Python Достаем плотность слоев материалов для стенки

Помечено: 

Просмотр 1 сообщения - с 1 по 1 (всего 1)
  • Автор
    Сообщения
  • #1946 Score: 2
    Legantmar
    Хранитель
    474 pts

    Напрямую некоторые вещи не достать, поэтому хитрость первая – доставать их через номер Id (с помощью команды doc.GetElement(Id)

    Хитрость вторая – подсматривать в lookup, где лежит тот или иной параметр. Так например, структура стенки прячется в разделе HostObjAttributes через команду GetCompoundStructure()

    1) Далее переходим в раздел Revit.DB.CompoundStructure (через dotPeek), где видим команды для получения толщины слоя, функции слоя, Id материала и другие.

    Через хитрость первую и GetMaterialId(i)  получаем сам материал слоя. Но он не имеет плотности, т.к. этот параметр лежит в наборе свойств материала (см. видео, в самом начале назначаются эти свойства конкретным материалам).

    2) И чтобы до них добраться идем смотреть Revit.DB.Material (опять через dot), где прячется команда  StructuralAssetId – через которую мы получаем Id номер набора свойств материала.

    далее через хитрость первую мы получаем сам набор свойств (он же PropertySetElement).

    3) Идем смотреть Revit.DB.PropertySetElement, где находим команду GetStructuralAsset() – откуда получаем уже структуру набора свойств (если так можно выразится)

    4) Идем смотреть Revit.DB.StructuralAsset, где видим то, что можем достать из структуры набора свойств, например, Density (плотность)

    нужен звук ставьте лайки ))

    Скачать скрипт

Просмотр 1 сообщения - с 1 по 1 (всего 1)
  • Для ответа в этой теме необходимо авторизоваться.