Как вытянуть список вложенных общих семейств из другого семейства
Главная › Форумы › Dynamo › Ноды › Как вытянуть список вложенных общих семейств из другого семейства
- В этой теме 11 ответов, 6 участников, последнее обновление 2 года, 4 месяца назад сделано Илья.
-
АвторСообщения
-
Собственно вопрос в заголовке темы.
Есть семейство (каркас арматурный), в нём около 15 других вложенных общих семейств. Каждое семейство имеет свой параметр – масса детали. Хочу получить список этих семейств, чтобы просуммировать нужные мне параметры (массы отдельных деталей и получить массу каркаса).
Кто-нибудь пытался решать задачи с семействами в семействах в динамо?Я, честно, такого еще не делал, но если ты предоставишь в качестве примера какой то файл Ревит, то можно попробовать
https://drive.google.com/open?id=0BwmNjVD4W1-BSTZTa0dFMkt6d1k – вот ссылка на проект (rvt 2016). В каждом семействе по 2 швеллера, у которых масса зависит от длины. Короче пытаюсь получить список объектов-швеллеров для каждого такого семейства
Досада, у меня стоит 2015
Павел у нас на форуме есть похожая тема, посмотри, может найдешь решение http://dynamobim.ru/forums/topic/выборка-элементов-из-связанных-файло/
Hi Pasha,
I will solve your issue. Give me access to your link https://drive.google.com/open?id=0BwmNjVD4W1-BSTZTa0dFMkt6d1k
Хасан. Это немного другая тема.
Паша спрашивает про семейства вложенные в семейства, а ты его отправил в вопрос о вложенных файлах.
Ответ на Пашин вопрос кроется вот на этой картинке:
Все семейства имеют параметр “Принадлежность к модулю” который и определяет “хозяина” либо оставляет пустую строку если семейство не принадлежит ни к чему.Извиняюсь за дезинформацию
Нашёл то что искал, нод от 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 DocumentManagerdoc = 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 = elementlistkojedubУчастникПоменяй переплетение в ноде с авто на короткое или поэкспериментируй )))
для более новый динам:
Element.GetChildElements — этим нодом можно получить вложенные семейства из родительского.
Element.GetParentElement — этим нодом можно получить родительское из вложенного.На основе скрипта выше сделал фильтр элементов которые вложены и не вложены. Понятно , что это уже дело техники, но решил таки поделиться.
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.
Comments: 342