using HStation.Model;
|
|
namespace HStation.Service
|
{
|
/// <summary>
|
/// 连接列表拓展
|
/// </summary>
|
public static class RevitConnectListExtensions
|
{
|
/// <summary>
|
/// 获取中心位置
|
/// </summary>
|
/// <param name="list">连接列表</param>
|
/// <returns></returns>
|
public static RevitPosition GetCenterPosition(this List<RevitConnect> list)
|
{
|
if (list == null || list.Count < 1)
|
{
|
return default;
|
}
|
var pts = list.Select(x => x.Position).ToList();
|
return pts.GetCenter();
|
}
|
|
/// <summary>
|
/// 获取开始连接
|
/// </summary>
|
/// <param name="list">连接列表</param>
|
/// <returns></returns>
|
public static RevitConnect GetStartConnect(this List<RevitConnect> list)
|
{
|
if (list == null || list.Count < 1)
|
{
|
return default;
|
}
|
var start = list.Find(x => x.Direction == Direction.Inlet);
|
if (start == null)
|
{
|
start = list.Where(x => x.Direction == Direction.None).FirstOrDefault();
|
}
|
return start;
|
}
|
|
/// <summary>
|
/// 获取开始连接列表
|
/// </summary>
|
/// <param name="list">连接列表</param>
|
/// <returns></returns>
|
public static List<RevitConnect> GetStartConnects(this List<RevitConnect> list)
|
{
|
if (list == null || list.Count < 1)
|
{
|
return default;
|
}
|
var starts = list.Where(x => x.Direction == Direction.Inlet).ToList();
|
return starts;
|
}
|
|
/// <summary>
|
/// 获取结束连接
|
/// </summary>
|
/// <param name="list">连接列表</param>
|
/// <returns></returns>
|
public static RevitConnect GetEndConnect(this List<RevitConnect> list)
|
{
|
if (list == null || list.Count < 1)
|
{
|
return default;
|
}
|
var end = list.Find(x => x.Direction == Direction.Outlet);
|
if (end == null)
|
{
|
end = list.Where(x => x.Direction == Direction.None).LastOrDefault();
|
}
|
return end;
|
}
|
|
/// <summary>
|
/// 获取结束连接列表
|
/// </summary>
|
/// <param name="list">连接列表</param>
|
/// <returns></returns>
|
public static List<RevitConnect> GetEndConnects(this List<RevitConnect> list)
|
{
|
if (list == null || list.Count < 1)
|
{
|
return default;
|
}
|
var ends = list.Where(x => x.Direction == Direction.Outlet).ToList();
|
return ends;
|
}
|
|
|
}
|
}
|