2024-09-22 11:05:41 +08:00
|
|
|
|
using Autodesk.Revit.DB;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
namespace Sai.Toolkit.Revit.Assist;
|
|
|
|
|
|
|
|
|
|
|
|
internal static class HostObjectAssist
|
|
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 得到轮廓线(墙,板等)
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="element"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public static List<Sketch> GetSketch(this HostObject element)
|
|
|
|
|
|
{
|
|
|
|
|
|
var doc = element.Document;
|
2024-10-08 16:21:39 +08:00
|
|
|
|
List<Sketch> sketches = [];
|
2024-09-22 11:05:41 +08:00
|
|
|
|
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);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|