在revit api中,我尝试访问门的ToRoom / FromRoom属性。ironpython中的简化代码片段:
fc = FilteredElementCollector(doc)
doors = fc.OfCategory(BuiltInCategory.OST_Doors).WhereElementIsNotElementType().ToElements()
for door in doors:
froom = door.FromRoom我的结果是"indexer # object at 0x0000000000035“如何从这里访问房间对象?
发布于 2016-08-18 21:07:26
这是一个IronPython /时髦的Revit API问题。基本上,按照定义FromRoom的方式,它既可以是一个属性,也可以是一个索引属性。请参阅API documentation for FromRoom。
你得到的“索引器”是FromRoom的第二个版本-它接受Phase作为它的参数。所以你基本上可以这样做:
phase = list(doc.Phases)[0]
room = door.FromRoom[phase]因为FromRoom的文档说它会返回
在项目的最后阶段,
为门或窗设置的“自房间”。
你可能真的想这样做:
phase = list(doc.Phases)[-1] # retrieve the last phase of the project
room = door.FromRoom[phase]我不知道如何获得另一个版本的FromRoom……
发布于 2016-08-18 23:24:49
达伦,谢谢你的贡献!在jeremy的回答之后,我检查了同样的方法。以下是代码片段
fc = FilteredElementCollector(doc)
doors = fc.OfCategory( BuiltInCategory.OST_Doors ).WhereElementIsNotElementType()
phases = doc.Phases
phase = phases[phases.Size - 1]
for door in doors:
try:
froom = door.FromRoom[phase].Id
except:
froom = -1
try:
troom = door.ToRoom[phase].Id
except:
troom = -1
TaskDialog.Show("Revit","%s, %s" %(froom, troom))`https://stackoverflow.com/questions/39001482
复制相似问题