Есть ли возможность определить с помощью Динамо самостоятельное семейство или оно вложено в другое?
Предположим семейство сетчатого фильтра в проекте существует как само по себе и как вложенное, например, в гребёнку. По сути это одно и то же семейство с галочкой "общее". По умолчанию, оба попадают в спецификацию. Как с помощью Динамо (без дополнительных параметров) отделить одно от другого.
С уважением, Ковылин Сергей Сергеевич
Инженер-проектировщик; BIM-менеджер
Чат для конструкторов в Telegram
Правила форума и некоторые нюансы по работе с текстовым редактором
Несколько ответов с форума Autodesk
В пакете нодов Clockwork есть нод FamilyInstance.SuperComponent, получающий родительское семейство. Если он вернет null, значит искомое семейство не вложено.
import clr
clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *
def GetSuperComponent(item):
if hasattr(item, "SuperComponent"):
sc = item.SuperComponent
if sc: return sc
else: return BeamSystem.BeamBelongsTo(item)
if hasattr(item, "HostRailingId"): return item.Document.GetElement(item.HostRailingId)
elif hasattr(item, "GetStairs"): return item.GetStairs()
else: return None
items = UnwrapElement(IN[0])
if isinstance(IN[0], list): OUT = [GetSuperComponent(x) for x in items]
else: OUT = GetSuperComponent(items)
С уважением, Ковылин Сергей Сергеевич
Инженер-проектировщик; BIM-менеджер
Чат для конструкторов в Telegram
Правила форума и некоторые нюансы по работе с текстовым редактором