Python get “name” and “area” of FromRoom based Room Calculator Point

@manhgt214 ,

check out this topic

builtinparameters easy to catch, in general

keep attetion to your syntex, “print” want work … use the template from primier!

import sys
import clr

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


def get_from_room_name(element):
	try:
		return Autodesk.Revit.DB.Element.Name.get(element.FromRoom[phase])
	except:
		return None

def get_from_room_area(element):
	return round(((element.FromRoom[phase].Area)*0.092903),2)

phases = doc.Phases
phase = phases[phases.Size - 1]

#Select all elements category from revit
selection = FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Doors).WhereElementIsNotElementType().ToElements()

#get From_Room_Name
room_name = []

for i in selection:
	room_name.append(get_from_room_name(i))


#get From_Room_Area
room_area = []

for i in selection:
	room_area.append(get_from_room_area(i))


OUT = room_name, room_area
2 Likes