I am trying to get Dynamo to select the dimensions that are attached to linked models in the current view but not the dimensions that are only attached to my own model or detail lines.
First I filtered the dimensions in the current view and then made the references visible that they are attached to.
Functie om te controleren of een element uit een linked model komt
def is_from_linked_model(reference):
linked_element = doc.GetElement(reference.ElementId)
if linked_element is None:
return False
if isinstance(linked_element, RevitLinkInstance):
return True
return False
Controleren of de dimensions verbonden zijn aan een gelinkt model
for dimension in dimensions:
references = dimension.References
for reference in references:
if is_from_linked_model(reference):
linked_dimensions.append(dimension)
break # We hoeven maar één gekoppelde referentie te vinden
Output van het script, de lijst met dimensies die aan een gelinkt model vastzitten
import clr
clr.AddReference("RevitServices")
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
clr.AddReference("RevitAPI")
from Autodesk.Revit.DB import *
clr.AddReference("RevitNodes")
import Revit
clr.ImportExtensions(Revit.Elements)
# Huidige document en view ophalen
doc = DocumentManager.Instance.CurrentDBDocument
uidoc = DocumentManager.Instance.CurrentUIApplication.ActiveUIDocument
view = doc.ActiveView
# 🛒Alle dimensions in de huidige view ophalen
collector = FilteredElementCollector(doc, view.Id)
dimensions = collector.OfClass(Dimension).ToElements()
# 🎣 Lijst om de geselecteerde dimensies op te slaan
linked_dimensions = []
# 🚀 Functie om te controleren of een element uit een linked model komt
def is_from_linked_model(reference):
linked_element = doc.GetElement(reference.ElementId)
if linked_element is None:
return False
if isinstance(linked_element, RevitLinkInstance):
return True
return False
# 🏓 Controleren of de dimensions verbonden zijn aan een gelinkt model
for dimension in dimensions:
references = dimension.References
for reference in references:
if is_from_linked_model(reference):
linked_dimensions.append(dimension)
break
# 📍 We hoeven maar één gekoppelde referentie te vinden
# ✅ Output van het script, de lijst met dimensies die aan een gelinkt model vastzitten
OUT = linked_dimensions