无法在 Revit 文件的视图中隐藏图元类别
Unable to hide element category in a view in Revit file
我想隐藏视图中的某些元素。
我设法隐藏了(使用 view..HideCategoryTemporary)我想要的所有元素,除了附图中标记的元素。
3D_House_before_hide
Element snoop
此元素是类别 OST_Viewers 的建筑部分。
通过视图手动隐藏元素类别是可行的,但在代码中获取所有 OST_Viewers 并隐藏它们是行不通的。
除了网格之外,以下代码还包含建筑部分元素,
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
如何隐藏这些建筑部分?
请使用View#SetCategoryHidden instead to turn off the visibility of the category, the result of the 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();
}
我想隐藏视图中的某些元素。 我设法隐藏了(使用 view..HideCategoryTemporary)我想要的所有元素,除了附图中标记的元素。 3D_House_before_hide
Element snoop 此元素是类别 OST_Viewers 的建筑部分。 通过视图手动隐藏元素类别是可行的,但在代码中获取所有 OST_Viewers 并隐藏它们是行不通的。
除了网格之外,以下代码还包含建筑部分元素,
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
如何隐藏这些建筑部分?
请使用View#SetCategoryHidden instead to turn off the visibility of the category, the result of the 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();
}