调整代码

This commit is contained in:
GG Z
2026-02-22 20:03:42 +08:00
parent 2ad3d0fde0
commit 7e2d5be3cd
258 changed files with 2916 additions and 5013 deletions

View File

@@ -83,6 +83,35 @@ public static class DocumentExtensions
return result;
}
/// <summary>
/// 按名称修改所有过滤器颜色
/// </summary>
/// <param name="doc"></param>
/// <param name="filterName">过滤器名称</param>
public static void ModifyFilter(this Document doc, string filterName,Color color)
{
var templates = doc.OfClass<View>().Cast<View>().Where(v => v.IsTemplate);
foreach (var template in templates)
{
var filters = template.GetFilters();
foreach (var id in filters)
{
var filterElement = doc.GetElement(id);
if (filterElement is ParameterFilterElement filter)
{
if (filter.Name.Contains(filterName))
{
var ogs = new OverrideGraphicSettings();
ogs.SetProjectionLineColor(color);
ogs.SetProjectionLineColor(color);
ogs.SetProjectionLineColor(color);
ogs.SetProjectionLineColor(color);
template.SetFilterOverrides(id, ogs);
}
}
}
}
}
/// <summary>
/// 获取所有可预览视图ID
/// </summary>
/// <typeparam name="T"></typeparam>

View File

@@ -0,0 +1,60 @@
using System;
using System.Collections.Generic;
using System.Net;
using System.Text;
using Autodesk.Revit.DB;
namespace ShrlAlgoToolkit.RevitCore.Extensions;
internal static class FamilyInstanceExtensions
{
public static bool IsNested(this Autodesk.Revit.DB.FamilyInstance familyInstance)
{
return familyInstance.SuperComponent != null;
}
public static bool CanBeMove(this Autodesk.Revit.DB.FamilyInstance familyInstance)
{
return !(familyInstance.Symbol.Family.FamilyPlacementType == FamilyPlacementType.WorkPlaneBased &&
familyInstance.Host == null &&
familyInstance.HostFace == null);
}
public static void DeleteEmptyType(this Document famDocument)
{
if(famDocument == null)
{
throw new ArgumentNullException(nameof(famDocument));
}
if(!famDocument.IsFamilyDocument)
{
throw new InvalidOperationException("该文档不是族文档");
}
var fm = famDocument.FamilyManager;
foreach (FamilyType item in fm.Types)
{
var b = string.IsNullOrWhiteSpace(item.Name);
//MessageBox.Show(item.Name);
if (b)
{
fm.CurrentType = item;
fm.DeleteCurrentType();
}
}
}
public static void Rotate(this Autodesk.Revit.DB.FamilyInstance familyInstance, double radian)
{
var axis = Line.CreateBound(familyInstance.GetTransform().Origin, familyInstance.GetTransform().Origin + XYZ.BasisZ);
ElementTransformUtils.RotateElement(familyInstance.Document, familyInstance.Id, axis, radian);
}
//extension (Autodesk.Revit.DB.FamilyInstance familyInstance)
//{
// public bool IsNested()
// {
// return familyInstance.SuperComponent != null;
// }
//}
}