【问题标题】:Unable to hide element category in a view in Revit file无法在 Revit 文件的视图中隐藏元素类别
【发布时间】:2020-07-06 16:48:26
【问题描述】:

我想隐藏视图中的某些元素。 我设法隐藏了(查看..HideCategoryTemporary)我想要的所有元素,除了附图中标记的元素。 3D_House_before_hide

Element snoop 此元素是 OST_Viewers 类别的构建部分。 通过视图手动隐藏元素类别有效,但在代码中获取所有 OST_Viewer 并隐藏它们不起作用。

以下代码包含除网格之外的建筑剖面元素,

FilteredElementCollector viewers_sections = new FilteredElementCollector(doc, v_id).OfCategory(BuiltInCategory.OST_Viewers);
FilteredElementCollector grids = new FilteredElementCollector(doc, v_id).OfCategory(BuiltInCategory.OST_Grids);

FilteredElementCollector elements_to_be_hidden = new FilteredElementCollector(doc, v_id);
elements_to_be_hidden.UnionWith(viewers_sections).UnionWith(grids)

foreach (Element e in elements_to_be_hidden)
{
     cur_view.HideCategoryTemporary(e.Category.Id);
}

我检查了 viewers_sections 是否包含提到的建筑部分,但它并没有从视图中隐藏。 After hide

如何隐藏这些建筑部分?

【问题讨论】:

    标签: revit-api revit


    【解决方案1】:

    请改用View#SetCategoryHidden关闭分类的可见性,关闭文件后View#HideCategoryTemporary的结果将被重置。这是工作示例:

    var gridCate = this.Document.Settings.Categories.get_Item(BuiltInCategory.OST_Grids);
    var sectionsCate = this.Document.Settings.Categories.get_Item(BuiltInCategory.OST_Sections);
    
    using(var trans = new Transaction(this.Document))
    {
        trans.Start("Hide Grids & Secions");
        this.ActiveView.SetCategoryHidden(gridCate.Id, true);
        this.ActiveView.SetCategoryHidden(sectionsCate.Id, true);
        trans.Commit();
    }
    

    【讨论】:

    • 感谢您的回答,但这也不起作用。问题不在于 HideCategory 是临时的,它在我想隐藏的所有其他元素上运行良好。它只是不适用于建筑部分。通过此代码隐藏他们的类别(我尝试在整个文档中查看)不起作用。虽然它适用于 OST_grids 和其他,但不适用于此模型中的 OST_Viewers 类别。
    • Section在可见性设置中的caegory称为OST_Sections,它不使用OST_Viewer。虽然仅按元素隐藏部分,但您可以使用OST_Viewer
    猜你喜欢
    • 2017-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-09
    • 2011-06-11
    • 2017-10-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多