样式demo
This commit is contained in:
@@ -6,6 +6,45 @@ namespace ShrlAlgoToolkit.Revit.Assists
|
||||
{
|
||||
internal class GeometryAssist
|
||||
{
|
||||
/// <summary>
|
||||
///获取元素的包围框
|
||||
/// </summary>
|
||||
/// <param name="elements"></param>
|
||||
/// <returns></returns>
|
||||
public static BoundingBoxXYZ GetBoundingBox(List<Element> elements)
|
||||
{
|
||||
if (elements == null || elements.Count == 0)
|
||||
{
|
||||
return new BoundingBoxXYZ();
|
||||
}
|
||||
|
||||
var gmax = XYZ.Zero;
|
||||
var gmin = XYZ.Zero;
|
||||
var elementIds = elements.Select(e => e.Id).ToList();
|
||||
var doc = elements.FirstOrDefault()?.Document;
|
||||
using (SubTransaction sub = new SubTransaction(doc))
|
||||
{
|
||||
sub.Start();
|
||||
Group g;
|
||||
if (doc.IsFamilyDocument)
|
||||
{
|
||||
g = doc.FamilyCreate.NewGroup(elementIds);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
g = doc.Create.NewGroup(elementIds);
|
||||
}
|
||||
gmax = g.get_BoundingBox(null).Max;
|
||||
gmin = g.get_BoundingBox(null).Min;
|
||||
sub.RollBack();
|
||||
}
|
||||
return new BoundingBoxXYZ
|
||||
{
|
||||
Max = gmax,
|
||||
Min = gmin
|
||||
};
|
||||
}
|
||||
/// <summary>
|
||||
/// 对曲线列表进行排序,使其正确排序和定向,形成线串。
|
||||
/// </summary>
|
||||
|
||||
Reference in New Issue
Block a user