针对房间、房间标记等一些特殊的元素,API中提供了一些特殊的Filter以供使用,也可以直接用正常的CLASS和CATEGORY过滤器。
UIDocument uidoc = commandData.Application.ActiveUIDocument;
Document doc = uidoc.Document; RoomFilter roomFilter = new RoomFilter(); FilteredElementCollector roomCollector = new FilteredElementCollector(doc); List<Element> roomList= roomCollector.WherePasses(roomFilter).ToList(); var query = from rooms in roomList where rooms.Name == "房间" select rooms; string roomName = "Rooms:\n"; if(query.Count()>0) { foreach (var elem in query) { roomName += elem.Name + "\n"; } TaskDialog.Show("asd", roomName); } else { TaskDialog.Show("asd", "未找到符合要求的房间"); }