Files
ShrlAlgoToolkit/ShrlAlgoToolkit.RevitCore/Extensions/ReferenceExtensions.cs

27 lines
983 B
C#
Raw Normal View History

2025-12-28 11:47:54 +08:00
using Autodesk.Revit.DB;
2025-07-11 09:20:23 +08:00
2026-02-21 16:31:24 +08:00
namespace ShrlAlgoToolkit.RevitCore.Extensions
2025-07-11 09:20:23 +08:00
{
public static class ReferenceExtensions
{
public static Curve GetActualEdgeCurve(this Reference selectedEdge, Document doc)
{
var stable = selectedEdge.ConvertToStableRepresentation(doc);
bool SolidInstance = stable.Contains("INSTANCE");//如果是Instance的话获取到的是族类型的边
Element elem = doc.GetElement(selectedEdge.ElementId);
var selEdge = elem.GetGeometryObjectFromReference(selectedEdge) as Edge;
var selEdgeCurve = selEdge.AsCurve();
if (SolidInstance)
{
Transform tf = Transform.Identity;
if (elem is FamilyInstance instance)
{
tf = instance.GetTransform();
}
return selEdgeCurve.CreateTransformed(tf);
}
return selEdgeCurve;
}
}
}