For Walls there is this very useful node called WallType.Kind
.
Is there something similar for Roofs and Floors?
As they both have more ‘subtypes’ besides Basic Roof and Floor (like Walls).
For Roofs there is also Fascia, Gutter, Roof Soffit and Sloped Glazing.
For Floors there is also Slab Edge.
@bvs1982 ,
i found this but it has to be modifed
import clr
clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *
def GetRoofKind(item):
if hasattr(item, "CurtainGrids"):
if item.CurtainGrids: return "Glazed"
else: return "Basic"
else:
if not item: return None
elif item.GetType().Name == 'RoofBase':
if item.Document.GetElement(item.GetTypeId()).GetCompoundStructure(): return "Basic"
else: return "Glazed"
elif item.GetType().Name == 'FamilyInstance': return 'In-Place'
else: return None
items = UnwrapElement(IN[0])
if isinstance(IN[0], list): OUT = [GetRoofKind(x) for x in items]
else: OUT = GetRoofKind(items)
it is from clockwork… …in which context do you need that?
There shouldn’t be a need for a custom node if I’m understanding your question. As you stated, the system categories have types, so you can get the type from the element and the category from the type.
You’re absolutely right. No idea why i didn’t think of that