Hi all,
I was trying to collect elements from specific views, but when i use “FilteredElementCollector” to pass multiple view Ids i encounter an error stating
“Warning: IronPythonEvaluator.EvaluateIronPythonScript operation failed.
Traceback (most recent call last):
File “”, line 51, in
Exception: viewId is not valid for element iteration, because it has no way of representing drawn elements. Many view templates will fail this check.
Parameter name: viewId”
Can some one please help me with this? @solamour , @Gui_Talarico
import clr
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *
clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *
from Autodesk.Revit.DB.Structure import *
clr.AddReference('RevitAPIUI')
from Autodesk.Revit.UI import *
clr.AddReference('System')
from System.Collections.Generic import List
clr.AddReference('RevitNodes')
import Revit
clr.ImportExtensions(Revit.GeometryConversion)
clr.ImportExtensions(Revit.Elements)
clr.AddReference('RevitServices')
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
doc = DocumentManager.Instance.CurrentDBDocument
uidoc=DocumentManager.Instance.CurrentUIApplication.ActiveUIDocument
#Preparing input from dynamo to revit
ViewPlan=[]
ViewElements=[]
RefSec=[]
ViewLocation=[]
EleList=[]
#Do some action in a Transaction
TransactionManager.Instance.EnsureInTransaction(doc)
Viewcol = FilteredElementCollector(doc).OfClass(View).ToElements()
for i in Viewcol:
if i.GetType().Name=="ViewPlan":
ViewPlan.append(i.Id)
for x in ViewPlan:
EleCol = FilteredElementCollector(doc,x).ToElements()
for j in EleList:
if j.GetType().Name=="Element" :
ViewElements.append(j)
for k in ViewElements:
if k.LookupParameter("View Name")!=None:
if k.LookupParameter("View Name").IsReadOnly:
RefSec.append(k)
ViewLocation.append(x)
TransactionManager.Instance.TransactionTaskDone()
OUT = ViewLocation
Best Regards
Buvanesh