针对房间、房间标记等一些特殊的元素,API中提供了一些特殊的Filter以供使用,也可以直接用正常的CLASS和CATEGORY过滤器。
UIDocument uidoc = commandData.Application.ActiveUIDocument;
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", "未找到符合要求的房间");
}