获取构件所在的房间
方法一:得到房间Solid后,就可以通过ElementIntersectsSolidFilter过滤出相交构件后,即可筛选出想要的构件:
var list = new FilteredElementCollector(doc).WhereElementIsNotElementType().WherePasses(new ElementIntersectsSolidFilter(solid)).ToList();
方法二: 如果对准确性要求不高的话,还可以直接通过构件Location获取到坐标进行判断:
room.IsPointInRoom();
doc.GetRoomAtPoint();