Как вытянуть список вложенных общих семейств из другого семейства

Главная Форумы Dynamo Ноды Как вытянуть список вложенных общих семейств из другого семейства

Просмотр 12 сообщений - с 1 по 12 (из 12 всего)
  • Автор
    Сообщения
  • #1274 Score: 0
    PashaStr (Pavel Karpovich)
    Участник
    7 pts

    Собственно вопрос в заголовке темы.
    Есть семейство (каркас арматурный), в нём около 15 других вложенных общих семейств. Каждое семейство имеет свой параметр – масса детали. Хочу получить список этих семейств, чтобы просуммировать нужные мне параметры (массы отдельных деталей и получить массу каркаса).
    Кто-нибудь пытался решать задачи с семействами в семействах в динамо?

    #1278 Score: 0
    Khasan Mamaev
    Модератор
    187 pts

    Я, честно, такого еще не делал, но если ты предоставишь в качестве примера какой то файл Ревит, то можно попробовать

    #1288 Score: 0
    PashaStr (Pavel Karpovich)
    Участник
    7 pts

    https://drive.google.com/open?id=0BwmNjVD4W1-BSTZTa0dFMkt6d1k – вот ссылка на проект (rvt 2016). В каждом семействе по 2 швеллера, у которых масса зависит от длины. Короче пытаюсь получить список объектов-швеллеров для каждого такого семейства

    #1289 Score: 0
    Khasan Mamaev
    Модератор
    187 pts

    Досада, у меня стоит 2015

    #1290 Score: 0
    Khasan Mamaev
    Модератор
    187 pts

    Павел у нас на форуме есть похожая тема, посмотри, может найдешь решение http://dynamobim.ru/forums/topic/выборка-элементов-из-связанных-файло/

    #1292 Score: 0
    kulkul
    Участник
    47 pts

    Hi Pasha,

    I will solve your issue. Give me access to your link https://drive.google.com/open?id=0BwmNjVD4W1-BSTZTa0dFMkt6d1k

    #1311 Score: 0
    Dmitry_dronov
    Модератор
    50 pts

    Хасан. Это немного другая тема.
    Паша спрашивает про семейства вложенные в семейства, а ты его отправил в вопрос о вложенных файлах.
    Ответ на Пашин вопрос кроется вот на этой картинке:

    Все семейства имеют параметр “Принадлежность к модулю” который и определяет “хозяина” либо оставляет пустую строку если семейство не принадлежит ни к чему.

    #1314 Score: 0
    Khasan Mamaev
    Модератор
    187 pts

    Извиняюсь за дезинформацию

    #1414 Score: 1
    kulkul
    Участник
    47 pts

    Hi Pasha,

    I am not sure if your looking for this.

    #1791 Score: 4
    PashaStr (Pavel Karpovich)
    Участник
    7 pts

    Нашёл то что искал, нод от clockwork – FamilyInstance.SubComponents. Вот заглядывает только в первый уровень вложенности. Может есть мысли как цикл переделать, чтобы развёртывал каждое семейство, что он нашёл? Ссылка на проект и скрипт – https://drive.google.com/folderview?id=0BwmNjVD4W1-BX25YRUk5SXBla28&usp=sharing (RVT2016) Работает на вот таком пайтон коде:

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

    clr.AddReference(“RevitNodes”)
    import Revit
    clr.ImportExtensions(Revit.Elements)

    clr.AddReference(“RevitServices”)
    import RevitServices
    from RevitServices.Persistence import DocumentManager

    doc = DocumentManager.Instance.CurrentDBDocument
    items = UnwrapElement(IN[0])
    elementlist = list()

    for item in items:
    itemlist = list()
    try:
    for subcomp in item.GetSubComponentIds():
    itemlist.append(doc.GetElement(subcomp).ToDSType(True))
    except:
    donothing = 1
    elementlist.append(itemlist)
    OUT = elementlist

    #10793 Score: 0
    kojedub
    Участник

    Поменяй переплетение в ноде с авто на короткое или поэкспериментируй )))

    для более новый динам:

    Element.GetChildElements — этим нодом можно получить вложенные семейства из родительского.
    Element.GetParentElement — этим нодом можно получить родительское из вложенного.

    #10871 Score: 0
    Илья
    Участник
    1 pt

    На основе скрипта выше сделал фильтр элементов которые вложены и не вложены. Понятно , что это уже дело техники, но решил таки поделиться.

    https://disk.yandex.ru/d/U8XCtiLbvcYRMQ

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