Steam nodes are getting quite long in the tooth
Here is some python to copy filtered views from a single link document
Requires IronPython due to sub-classing to stop duplicate type warnings
import clr
clr.AddReference("RevitAPI")
from Autodesk.Revit.DB import *
clr.AddReference("RevitServices")
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
from System.Collections.Generic import List
class SuppressDuplicateTypeNames(IDuplicateTypeNamesHandler):
def OnDuplicateTypeNamesFound(self, args):
return DuplicateTypeAction.UseDestinationTypes
# ** Use IronPython **
doc = DocumentManager.Instance.CurrentDBDocument
link_doc = IN[0]
name_contains = IN[1]
copy_views = IN[2]
# Collect views
views = (
FilteredElementCollector(link_doc)
.OfCategory(BuiltInCategory.OST_Views)
.ToElements()
)
# Filter views
views = list(filter(lambda v: name_contains in v.Name, views))
view_ids = List[ElementId](map(lambda e: e.Id, views))
# Copy views
if copy_views:
options = CopyPasteOptions()
options.SetDuplicateTypeNamesHandler(SuppressDuplicateTypeNames())
TransactionManager.Instance.EnsureInTransaction(doc)
views = ElementTransformUtils.CopyElements(link_doc, view_ids, doc, None, options)
TransactionManager.Instance.TransactionTaskDone()
OUT = [doc.GetElement(vid) for vid in views], views
else:
OUT = views, view_ids
