C# 从一个平面视图获取所有房间名称,并更改每个房间的参数| Revit API

C# 从一个平面视图获取所有房间名称,并更改每个房间的参数| Revit API,c#,revit-api,C#,Revit Api,现在我正在做一个项目,它应该从平面图中获取房间名称,并将每个房间名称与数据库进行比较。如果在数据库中找到roomname,则房间中名为“IS_in_database”的参数应更新为“YES” 不幸的是,我不知道如何从一个平面图中获得房间名称 我找到了这个帖子: 但它不起作用,因为我总是遇到一个例外: viewId不是视图。 参数名称:viewId如果您提供一些代码,这将更容易实现,但这是否有效 View activeView = doc.ActiveView; List<Room>

现在我正在做一个项目,它应该从平面图中获取房间名称,并将每个房间名称与数据库进行比较。如果在数据库中找到roomname,则房间中名为“IS_in_database”的参数应更新为“YES”

不幸的是,我不知道如何从一个平面图中获得房间名称

我找到了这个帖子:
但它不起作用,因为我总是遇到一个例外:

viewId不是视图。
参数名称:viewId

如果您提供一些代码,这将更容易实现,但这是否有效

View activeView = doc.ActiveView;

List<Room> rooms = new FilteredElementCollector(doc, activeView.Id).OfClass(typeof(Room)).Cast<Room>().ToList();
View-activeView=doc.activeView;
List rooms=newfilteredelementcollector(doc,activeView.Id).OfClass(typeof(Room)).Cast().ToList();
要仅获取列表中的名称,可以使用以下内容:

List<string> rooms = new FilteredElementCollector(doc, activeView.Id).OfClass(typeof(Room)).Select(a => a.Name).ToList();
List rooms=new FilteredElementCollector(doc,activeView.Id).OfClass(typeof(Room)).Select(a=>a.Name.ToList();
将使用Autodesk.Revit.DB.Architecture的
放在顶部,否则它将无法识别房间。

已在中回答


如果您针对这两个单独的问题提出单独的问题,那就更好了。

正如帖子中提到的:
您需要确保活动视图不是项目浏览器、明细表或草稿。。。最好是平面视图。
谢谢,但是我现在如何为房间设置新参数?您知道参数的名称吗?