Как узнать вложенно...
 
Поделиться:
Уведомления
Очистить все

[Решено] Как узнать вложенное семейство или нет?

1 Сообщения
1 Пользователи
0 Лайки
607 Просмотры
0
Автор темы

Вопрос с форума Autodesk

Есть ли возможность определить с помощью Динамо самостоятельное семейство или оно вложено в другое?

Предположим семейство сетчатого фильтра в проекте существует как само по себе и как вложенное, например, в гребёнку. По сути это одно и то же семейство с галочкой "общее". По умолчанию, оба попадают в спецификацию.  Как с помощью Динамо (без дополнительных параметров) отделить одно от другого.

С уважением, Ковылин Сергей Сергеевич
Инженер-проектировщик; BIM-менеджер
Чат для конструкторов в Telegram
Правила форума и некоторые нюансы по работе с текстовым редактором

1 Ответ
0
Автор темы

Несколько ответов с форума Autodesk

Ответ 1

В пакете нодов Clockwork есть нод FamilyInstance.SuperComponent, получающий родительское семейство. Если он вернет null, значит искомое семейство не вложено.

Ответ 2

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
Правила форума и некоторые нюансы по работе с текстовым редактором

Ответ