大量更新

This commit is contained in:
GG Z
2025-12-23 21:35:54 +08:00
parent cd4733ee01
commit ceccab9abb
211 changed files with 9439 additions and 6578 deletions

View File

@@ -1,7 +1,9 @@
using System.Windows;
using System.Windows.Controls;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
using Nice3point.Revit.Toolkit.External.Handlers;
@@ -74,19 +76,52 @@ public partial class ElementsControlDock : IDockablePaneProvider
//显示隐藏
else if (RevealHiddenElements == btn)
{
//if (doc.IsFamilyDocument)
//{
// ElementClassFilter formFilter = new(typeof(GenericForm));
// ElementClassFilter combineFilter = new(typeof(GeomCombination));
// orFilter = new(
// [instanceFilter, formFilter, combineFilter]);
//}
//var hiddenElemsIds = doc.OfCollector()
// .WherePasses(orFilter)
// .Where(e => e.IsHidden(view))
// .Select(e => e.Id).ToList();
//doc.Invoke(_ => view.UnhideElements(hiddenElemsIds), $"{btn.Content}");
if (doc.IsFamilyDocument)
{
ElementClassFilter formFilter = new(typeof(GenericForm));
ElementClassFilter combineFilter = new(typeof(GeomCombination));
orFilter = new(
[instanceFilter, formFilter, combineFilter]);
var col = new FilteredElementCollector(doc).WhereElementIsNotElementType();
var views = new FilteredElementCollector(doc).OfClass(typeof(View)).WhereElementIsNotElementType().Cast<View>().ToList();
Transaction transaction = new Transaction(doc, $"{btn.Content}");
transaction.Start();
foreach (var v in views)
{
foreach (Element item in col)
{
if (item.IsHidden(v))
{
v.UnhideElements([item.Id]);
}
}
}
transaction.Commit();
}
var hiddenElemsIds = doc.OfCollector()
.WherePasses(orFilter)
.Where(e => e.IsHidden(view))
.Select(e => e.Id).ToList();
doc.Invoke(_ => view.UnhideElements(hiddenElemsIds), $"{btn.Content}");
else
{
var col = new FilteredElementCollector(doc).WhereElementIsNotElementType();
Transaction transaction = new Transaction(doc, $"{btn.Content}");
transaction.Start();
foreach (Element item in col)
{
if (item.IsHidden(doc.ActiveView))
{
doc.ActiveView.UnhideElements([item.Id]);
}
}
transaction.Commit();
}
return;
}
//锁定元素
else if (PinElements == btn)