【问题标题】:Get all room names from one plan view and change a parameter of each room | Revit API从一个平面视图中获取所有房间名称并更改每个房间的参数 | Revit API
【发布时间】:2018-05-09 23:26:35
【问题描述】:

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

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

我发现了这个帖子:https://forums.autodesk.com/t5/revit-api-forum/how-to-retrieve-rooms-filtered-by-level/td-p/6627076
但它不起作用,因为我总是遇到异常:

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

【问题讨论】:

  • 如帖子所述:You need to make sure the active view is not the project browser nor schedule nor draft... it is preferable to be a plan view.

标签: c# revit-api


【解决方案1】:

已经在Revit API discussion forum thread on getting room names and changing parameter value回复了。

如果您针对这两个单独的问题提出单独的问题会更好。

【讨论】:

    【解决方案2】:

    如果你提供一些代码会更容易,但是这样行吗?

    View activeView = doc.ActiveView;
    
    List<Room> rooms = new FilteredElementCollector(doc, activeView.Id).OfClass(typeof(Room)).Cast<Room>().ToList();
    

    要仅获取列表中的名称,您可以使用以下内容:

    List<string> rooms = new FilteredElementCollector(doc, activeView.Id).OfClass(typeof(Room)).Select(a => a.Name).ToList();
    

    using Autodesk.Revit.DB.Architecture放在最上面,否则它不会识别房间。

    【讨论】:

    • 谢谢,但我现在如何为房间设置新参数?
    • 你知道参数的名称吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-31
    • 2020-05-20
    • 1970-01-01
    • 2019-07-02
    • 1970-01-01
    • 2016-11-09
    相关资源
    最近更新 更多