Hello,
I’m trying to retrieve all the elevations from a RVT document filepath. So far I can get all views but cannot find a node or means to filter it down to elevations the way the regular View Type node would if I had opened the RVT file directly. Thanks for any guidance you can provide.
Hi @daniel.tran,
You already asked for a very similar task a few days ago. (with viewTemplates)
Next time, try for yourself.
You can make a filter to collect only the elevations or use python :
#Copyright(c) 2015, Konrad Sobon
# @arch_laboratory, http://archi-lab.net
import clr
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *
# Import DocumentManager and TransactionManager
clr.AddReference('RevitServices')
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
# Import RevitAPI
clr.AddReference('RevitAPI')
import Autodesk
from Autodesk.Revit.DB import *
from System.Collections.Generic import *
# Import ToDSType(bool) extension method
clr.AddReference('RevitNodes')
import Revit
clr.ImportExtensions(Revit.Elements)
def tolist(x):
if hasattr(x,'__iter__'): return x
else : return [x]
doc = tolist(IN[0])
#collect all views in the model
for d in doc:
collector = FilteredElementCollector(d)
views = collector.OfClass(View).ToElements()
#sort views into separate lists based on view type
elevations = []
for i in views:
if not i.IsTemplate:
if i.ViewType == ViewType.Elevation:
elevations.append(i.ToDSType(True))
else:
continue
#Assign your output to the OUT variable
OUT = elevations
2 Likes
Thank you for your suggestion.