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

Hi everyone!

I tried get “name” and “area” of FromRoom but result don’t correct.

“Room Name” contain room number and “Area” not round all element.
Please show me where is incorrect code.
Thank Advance!

import Autodesk
from Autodesk.Revit.DB import *

doc = __revit__.ActiveUIDocument.Document
uidoc = __revit__.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))
    for i in room_name:
        print(i)

#get From_Room_Area
room_area = []
for i in selection:
    room_area.append(get_from_room_area(i))
    print(room_area)

image

@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