Get Views - Remove nulls in python

the OUT Dynamo Wrapper is capricious with certain objects

here a solution

import sys
import clr
import System
clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *

clr.AddReference('RevitServices')
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager

doc = DocumentManager.Instance.CurrentDBDocument
uidoc=DocumentManager.Instance.CurrentUIApplication.ActiveUIDocument
		
ueWrapper = next((m for m in clr.GetClrType(Revit.Elements.ElementWrapper)\
				.GetMethods() if m.Name == "Wrap"), None)
				
if ueWrapper is None:
	raise Exception("Error Method", "method 'Revit.Elements.ElementWrapper.Wrap' not found") 

views = FilteredElementCollector(doc).OfClass(View).ToElements()

outlist = []

for i in views:
	iswrapable = Revit.Elements.ElementWrapper.Wrap(i, True)
	if iswrapable is None :
		outlist.append(ueWrapper.Invoke(None, (i, True) ))
	else:
		outlist.append(i)

OUT = outlist
5 Likes