Skip to content

Commit 76dbb3a

Browse files
authored
Merge pull request #2928 from Denver-22/develop
Update pyrevitlib\pyrevit\revit\selection.py
2 parents 0ac7d6e + afc0792 commit 76dbb3a

File tree

1 file changed

+13
-3
lines changed

1 file changed

+13
-3
lines changed

pyrevitlib/pyrevit/revit/selection.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
# -*- coding: utf-8 -*-
12
"""Elements selection utilities."""
23
from pyrevit import HOST_APP, DOCS, PyRevitException
34
from pyrevit import framework, DB, UI
@@ -182,9 +183,18 @@ def _pick_obj(obj_type, message, multiple=False, world=False, selection_filter=N
182183
else:
183184
return_values = [ref.UVPoint for ref in refs]
184185
else:
185-
return_values = [
186-
DOCS.doc.GetElement(ref).GetGeometryObjectFromReference(ref) for ref in refs
187-
]
186+
return_values = []
187+
for ref in refs:
188+
element = DOCS.doc.GetElement(ref)
189+
if obj_type == UI.Selection.ObjectType.LinkedElement and isinstance(element, DB.RevitLinkInstance):
190+
link_doc = element.GetLinkDocument()
191+
if link_doc and ref.LinkedElementId != DB.ElementId.InvalidElementId:
192+
return_values.append(link_doc.GetElement(ref.LinkedElementId))
193+
else:
194+
mlogger.debug("Skipping unloaded link or invalid reference: %s", ref)
195+
return_values.append(None)
196+
else:
197+
return_values.append(element.GetGeometryObjectFromReference(ref))
188198

189199
mlogger.debug("Processed return elements are: %s", return_values)
190200

0 commit comments

Comments
 (0)