Files
Shrlalgo.RvKits/ShrlAlgoToolkit.Revit/Extensions/HostObjectExtensions.cs
2025-04-24 20:56:44 +08:00

44 lines
1.2 KiB
C#

using Autodesk.Revit.DB;
namespace ShrlAlgoToolkit.Revit.Assists;
internal static class HostObjectExtensions
{
/// <summary>
/// 得到轮廓线(墙,板等)
/// </summary>
/// <param name="element"></param>
/// <returns></returns>
public static List<Sketch> GetSketch(this HostObject element)
{
var doc = element.Document;
List<Sketch> sketches = [];
using (SubTransaction subTransaction = new(doc))
{
subTransaction.Start();
var ids = doc.Delete(element.Id);
subTransaction.RollBack();
foreach (var id in ids)
{
if (doc.GetElement(id) is Sketch sketch)
{
sketches.Add(sketch);
}
}
}
return sketches;
}
public static IList<Reference> GetBottomFaces(this HostObject host)
{
return HostObjectUtils.GetBottomFaces(host);
}
public static IList<Reference> GetSideFaces(this HostObject host, ShellLayerType side)
{
return HostObjectUtils.GetSideFaces(host, side);
}
public static IList<Reference> GetTopFaces(this HostObject host)
{
return HostObjectUtils.GetTopFaces(host);
}
}