duheng
2024-10-16 083c4e47c7a59025f3348bd093693c6b3febb014
Merge branch 'master' of http://47.103.154.90:83/r/HStation/XHS.V1.0
已删除2个文件
已重命名19个文件
已修改20个文件
已添加4个文件
6652 ■■■■ 文件已修改
Desktop/HStation.Desktop.Xhs.Core/RevitTestHelper.cs 332 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Hydro/HStation.Hydro.Core/TransferHelper.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Service/HStation.Service.Revit.Core/00-core/LinkStatus.cs 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Service/HStation.Service.Revit.Core/00-core/PipeStatus.cs 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Service/HStation.Service.Revit.Core/00-core/PumpStatus.cs 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Service/HStation.Service.Revit.Core/00-core/Valve.cs 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Service/HStation.Service.Revit.Core/00-core/ValveStatus.cs 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Service/HStation.Service.Revit.Core/00-core/ValveType.cs 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Service/HStation.Service.Revit.Core/01-model/RevitModel.cs 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Service/HStation.Service.Revit.Core/01-model/RevitModel_Method.cs 185 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Service/HStation.Service.Revit.Core/02-parter/00-core/RevitParter.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Service/HStation.Service.Revit.Core/02-parter/01-visual/RevitVisual.cs 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Service/HStation.Service.Revit.Core/02-parter/02-node/00-core/RevitNode.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Service/HStation.Service.Revit.Core/02-parter/02-node/01-junction/00-core/RevitJunction.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Service/HStation.Service.Revit.Core/02-parter/02-node/01-junction/01-source/00-core/RevitSource.cs 补丁 | 查看 | 原始文档 | blame | 历史
Service/HStation.Service.Revit.Core/02-parter/02-node/01-junction/01-source/01-reservoir/RevitReservoir.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Service/HStation.Service.Revit.Core/02-parter/02-node/01-junction/01-source/02-tank/RevitTank.cs 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Service/HStation.Service.Revit.Core/02-parter/02-node/01-junction/01-source/02-tank/RevitWaterbox.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Service/HStation.Service.Revit.Core/02-parter/02-node/01-junction/02-coupling/00-core/RevitCoupling.cs 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Service/HStation.Service.Revit.Core/02-parter/02-node/01-junction/02-coupling/01-blunthead/RevitBlunthead.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Service/HStation.Service.Revit.Core/02-parter/02-node/01-junction/02-coupling/02-elbow/RevitElbow.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Service/HStation.Service.Revit.Core/02-parter/02-node/01-junction/02-coupling/03-threelink/RevitThreelink.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Service/HStation.Service.Revit.Core/02-parter/02-node/01-junction/02-coupling/04-fourlink/RevitFourlink.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Service/HStation.Service.Revit.Core/02-parter/02-node/01-junction/03-emitter/00-core/RevitEmitter.cs 补丁 | 查看 | 原始文档 | blame | 历史
Service/HStation.Service.Revit.Core/02-parter/02-node/01-junction/03-emitter/01-nozzle/RevitNozzle.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Service/HStation.Service.Revit.Core/02-parter/02-node/01-junction/03-emitter/02-hydrant/RevitHydrant.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Service/HStation.Service.Revit.Core/02-parter/02-node/01-junction/04-meter/RevitMeter.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Service/HStation.Service.Revit.Core/02-parter/02-node/01-junction/05-other/RevitFlowmeter.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Service/HStation.Service.Revit.Core/02-parter/02-node/01-junction/05-other/RevitPressmeter.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Service/HStation.Service.Revit.Core/02-parter/03-link/00-core/RevitLink.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Service/HStation.Service.Revit.Core/02-parter/03-link/01-pipe/RevitExchanger.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Service/HStation.Service.Revit.Core/02-parter/03-link/01-pipe/RevitPipe.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Service/HStation.Service.Revit.Core/02-parter/03-link/01-pipe/RevitTranslation.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Service/HStation.Service.Revit.Core/02-parter/03-link/02-pump/RevitPump.cs 54 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Service/HStation.Service.Revit.Core/02-parter/03-link/03-valve/RevitValve.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Service/HStation.Service.Revit.Core/02-parter/09-model/RevitConnect.cs 补丁 | 查看 | 原始文档 | blame | 历史
Service/HStation.Service.Revit.Core/02-parter/09-model/RevitPosition.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Service/HStation.Service.Revit.Core/02-parter/09-model/RevitPropStatus.cs 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Service/HStation.Service.Revit.Core/02-parter/09-model/RevitPropValue.cs 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Service/HStation.Service.Revit.Core/04-service/01-json/00-core/RevitJsonProp.cs 83 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Service/HStation.Service.Revit.Core/04-service/01-json/02-helper/RevitConnectListExtensions.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Service/HStation.Service.Revit.Core/04-service/01-json/02-helper/RevitParterExtensions.cs 64 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Service/HStation.Service.Revit.Core/04-service/01-json/02-helper/RevitPositionListExtensions.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Service/HStation.Service.Revit.Core/04-service/01-json/RevitJsonHelper.cs 5461 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Service/HStation.Service.Revit.Core/04-service/02-correct/RevitCorrectHelper.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Desktop/HStation.Desktop.Xhs.Core/RevitTestHelper.cs
ÎļþÒÑɾ³ý
Hydro/HStation.Hydro.Core/TransferHelper.cs
@@ -65,7 +65,7 @@
                    tank.InitLevel = revitTank.InitLevel;
                    tank.MinLevel = revitTank.MinLevel;
                    tank.MaxLevel = revitTank.MaxLevel;
                    tank.Diameter = revitTank.Diameter;
                    tank.Diameter = revitTank.DN;
                    tank.MinVol = revitTank.MinVol;
                    tank.VolCurve = revitTank.VolCurve;
                    tank.Position2d = new Yw.Model.Hydro.Position2d(revitTank.Position.X, revitTank.Position.Y);
@@ -97,7 +97,7 @@
                    waterbox.InitLevel = revitWaterbox.InitLevel;
                    waterbox.MinLevel = revitWaterbox.MinLevel;
                    waterbox.MaxLevel = revitWaterbox.MaxLevel;
                    waterbox.Diameter = revitWaterbox.Diameter;
                    waterbox.Diameter = revitWaterbox.DN;
                    waterbox.MinVol = revitWaterbox.MinVol;
                    waterbox.VolCurve = revitWaterbox.VolCurve;
                    waterbox.Position2d = new Yw.Model.Hydro.Position2d(revitWaterbox.Position.X, revitWaterbox.Position.Y);
@@ -409,7 +409,7 @@
                    pump.StartCode = revitPump.StartCode;
                    pump.EndCode = revitPump.EndCode;
                    pump.LinkStatus = revitPump.LinkStatus;
                    pump.RatedP = revitPump.RatedPower;
                    pump.RatedP = revitPump.RatedP;
                    pump.CurveQH = revitPump.CurveQH;
                    pump.Price = revitPump.Price;
                    pump.PricePattern = revitPump.PricePattern;
Service/HStation.Service.Revit.Core/00-core/LinkStatus.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
namespace HStation.Revit
{
    /// <summary>
    /// ç®¡æ®µçŠ¶æ€
    /// </summary>
    public class LinkStatus
    {
        /// <summary>
        /// æ— 
        /// </summary>
        public const string None = "None";
        /// <summary>
        /// å¼€å¯
        /// </summary>
        public const string Open = "Open";
        /// <summary>
        /// å…³é—­
        /// </summary>
        public const string Closed = "Closed";
        /// <summary>
        /// CV æ„å‘³ç€ç®¡é“包含了限制流向的止回阀
        /// </summary>
        public const string CV = "CV";
    }
}
Service/HStation.Service.Revit.Core/00-core/PipeStatus.cs
@@ -19,5 +19,30 @@
        /// CV æ„å‘³ç€ç®¡é“包含了限制流向的止回阀
        /// </summary>
        public const string CV = "CV";
        /// <summary>
        /// åŒ…含
        /// </summary>
        public static bool Contains(string status)
        {
            if (string.IsNullOrEmpty(status))
            {
                return false;
            }
            if (status == Open)
            {
                return true;
            }
            if (status == Closed)
            {
                return true;
            }
            if (status == CV)
            {
                return true;
            }
            return false;
        }
    }
}
Service/HStation.Service.Revit.Core/00-core/PumpStatus.cs
@@ -14,5 +14,27 @@
        /// å…³é—­
        /// </summary>
        public const string Closed = "Closed";
        /// <summary>
        /// åŒ…含
        /// </summary>
        public static bool Contains(string status)
        {
            if (string.IsNullOrEmpty(status))
            {
                return false;
            }
            if (status == Open)
            {
                return true;
            }
            if (status == Closed)
            {
                return true;
            }
            return false;
        }
    }
}
Service/HStation.Service.Revit.Core/00-core/Valve.cs
ÎļþÒÑɾ³ý
Service/HStation.Service.Revit.Core/00-core/ValveStatus.cs
@@ -19,5 +19,31 @@
        /// å…³é—­
        /// </summary>
        public const string Closed = "Closed";
        /// <summary>
        /// åŒ…含
        /// </summary>
        public static bool Contains(string status)
        {
            if (string.IsNullOrEmpty(status))
            {
                return false;
            }
            if (status == None)
            {
                return true;
            }
            if (status == Open)
            {
                return true;
            }
            if (status == Closed)
            {
                return true;
            }
            return false;
        }
    }
}
Service/HStation.Service.Revit.Core/00-core/ValveType.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,76 @@
namespace HStation.Revit
{
    /// <summary>
    /// é˜€é—¨ç±»åž‹
    /// </summary>
    public class ValveType
    {
        /// <summary>
        /// å‡åŽ‹é˜€ åŽ‹å¼ºï¼Œm(psi)
        /// </summary>
        public const string PRV = "PRV";
        /// <summary>
        /// ç¨³åŽ‹é˜€ åŽ‹å¼ºï¼Œm(psi)
        /// </summary>
        public const string PSV = "PSV";
        /// <summary>
        /// åŽ‹åŠ›åˆ¶åŠ¨é˜€ åŽ‹å¼ºï¼Œm(psi)
        /// </summary>
        public const string PBV = "PBV";
        /// <summary>
        /// æµé‡æŽ§åˆ¶é˜€ æµé‡(流量单位)
        /// </summary>
        public const string FCV = "FCV";
        /// <summary>
        /// èŠ‚æµæŽ§åˆ¶é˜€ æŸå¤±ç³»æ•°
        /// </summary>
        public const string TCV = "TCV";
        /// <summary>
        /// å¸¸è§„阀门 æ°´å¤´æŸå¤±æ›²çº¿ID
        /// </summary>
        public const string GPV = "GPV";
        /// <summary>
        /// åŒ…含
        /// </summary>
        public static bool Contains(string type)
        {
            if (string.IsNullOrEmpty(type))
            {
                return false;
            }
            if (type == PRV)
            {
                return true;
            }
            if (type == PSV)
            {
                return true;
            }
            if (type == PBV)
            {
                return true;
            }
            if (type == FCV)
            {
                return true;
            }
            if (type == TCV)
            {
                return true;
            }
            if (type == GPV)
            {
                return true;
            }
            return false;
        }
    }
}
Service/HStation.Service.Revit.Core/01-model/RevitModel.cs
@@ -46,8 +46,8 @@
            this.Junctions = rhs.Junctions;
            this.Nozzles = rhs.Nozzles;
            this.Hydrants = rhs.Hydrants;
            this.Elbows = rhs.Elbows;
            this.Bluntheads = rhs.Bluntheads;
            this.Elbows = rhs.Elbows;
            this.Threelinks = rhs.Threelinks;
            this.Fourlinks = rhs.Fourlinks;
            this.Meters = rhs.Meters;
@@ -108,6 +108,11 @@
        public List<RevitHydrant> Hydrants { get; set; }
        /// <summary>
        /// é—·å¤´åˆ—表
        /// </summary>
        public List<RevitBlunthead> Bluntheads { get; set; }
        /// <summary>
        /// å¼¯å¤´åˆ—表
        /// </summary>
        public List<RevitElbow> Elbows { get; set; }
@@ -121,11 +126,6 @@
        /// å››é€šåˆ—表
        /// </summary>
        public List<RevitFourlink> Fourlinks { get; set; }
        /// <summary>
        /// é—·å¤´åˆ—表
        /// </summary>
        public List<RevitBlunthead> Bluntheads { get; set; }
        /// <summary>
        /// æ°´è¡¨
@@ -148,16 +148,6 @@
        #region ç®¡æ®µ
        /// <summary>
        /// æ°´æ³µåˆ—表
        /// </summary>
        public List<RevitPump> Pumps { get; set; }
        /// <summary>
        /// é˜€é—¨åˆ—表
        /// </summary>
        public List<RevitValve> Valves { get; set; }
        /// <summary>
        /// ç®¡é“列表
        /// </summary>
        public List<RevitPipe> Pipes { get; set; }
@@ -172,6 +162,16 @@
        /// </summary>
        public List<RevitExchanger> Exchangers { get; set; }
        /// <summary>
        /// æ°´æ³µåˆ—表
        /// </summary>
        public List<RevitPump> Pumps { get; set; }
        /// <summary>
        /// é˜€é—¨åˆ—表
        /// </summary>
        public List<RevitValve> Valves { get; set; }
        #endregion
        #region è£…饰件
Service/HStation.Service.Revit.Core/01-model/RevitModel_Method.cs
@@ -89,7 +89,90 @@
        }
        /// <summary>
        /// èŽ·å–æ‰€æœ‰èŠ‚ç‚¹
        /// èŽ·å–æ‰€æœ‰å¯è§ç»„ä»¶
        /// </summary>
        public List<RevitVisual> GetAllVisuals()
        {
            var list = new List<RevitVisual>();
            if (this.Reservoirs != null && this.Reservoirs.Count > 0)
            {//水库
                list.AddRange(this.Reservoirs);
            }
            if (this.Tanks != null && this.Tanks.Count > 0)
            {//æ°´æ± 
                list.AddRange(this.Tanks);
            }
            if (this.Waterboxs != null && this.Waterboxs.Count > 0)
            {//æ°´ç®±
                list.AddRange(this.Waterboxs);
            }
            if (this.Junctions != null && this.Junctions.Count > 0)
            {//连接节点
                list.AddRange(this.Junctions);
            }
            if (this.Nozzles != null && this.Nozzles.Count > 0)
            {//喷嘴
                list.AddRange(this.Nozzles);
            }
            if (this.Hydrants != null && this.Hydrants.Count > 0)
            {//消火栓
                list.AddRange(this.Hydrants);
            }
            if (this.Bluntheads != null && this.Bluntheads.Count > 0)
            {//闷头
                list.AddRange(this.Bluntheads);
            }
            if (this.Elbows != null && this.Elbows.Count > 0)
            {//弯头
                list.AddRange(this.Elbows);
            }
            if (this.Threelinks != null && this.Threelinks.Count > 0)
            {//三通
                list.AddRange(this.Threelinks);
            }
            if (this.Fourlinks != null && this.Fourlinks.Count > 0)
            {//四通
                list.AddRange(this.Fourlinks);
            }
            if (this.Meters != null && this.Meters.Count > 0)
            {//水表
                list.AddRange(this.Meters);
            }
            if (this.Flowmeters != null && this.Flowmeters.Count > 0)
            {//流量计
                list.AddRange(this.Flowmeters);
            }
            if (this.Pressmeters != null && this.Pressmeters.Count > 0)
            {//压力表
                list.AddRange(this.Pressmeters);
            }
            if (this.Pipes != null && this.Pipes.Count > 0)
            {//管道
                list.AddRange(this.Pipes);
            }
            if (this.Translations != null && this.Translations.Count > 0)
            {//过渡件
                list.AddRange(this.Translations);
            }
            if (this.Exchangers != null && this.Exchangers.Count > 0)
            {//换热器
                list.AddRange(this.Exchangers);
            }
            if (this.Pumps != null && this.Pumps.Count > 0)
            {//æ°´æ³µ
                list.AddRange(this.Pumps);
            }
            if (this.Valves != null && this.Valves.Count > 0)
            {//阀门
                list.AddRange(this.Valves);
            }
            return list;
        }
        /// <summary>
        /// èŽ·å–æ‰€æœ‰èŠ‚ç‚¹ç»„ä»¶
        /// </summary>
        public List<RevitNode> GetAllNodes()
        {
@@ -150,42 +233,9 @@
        }
        /// <summary>
        /// èŽ·å–æ‰€æœ‰ç®¡æ®µ
        /// èŽ·å–æ‰€æœ‰æ°´æºç»„ä»¶
        /// </summary>
        public List<RevitLink> GetAllLinks()
        {
            var list = new List<RevitLink>();
            if (this.Pipes != null && this.Pipes.Count > 0)
            {//管道
                list.AddRange(this.Pipes);
            }
            if (this.Translations != null && this.Translations.Count > 0)
            {//过渡件
                list.AddRange(this.Translations);
            }
            if (this.Exchangers != null && this.Exchangers.Count > 0)
            {//换热器
                list.AddRange(this.Exchangers);
            }
            if (this.Pumps != null && this.Pumps.Count > 0)
            {//æ°´æ³µ
                list.AddRange(this.Pumps);
            }
            if (this.Valves != null && this.Valves.Count > 0)
            {//阀门
                list.AddRange(this.Valves);
            }
            return list;
        }
        /// <summary>
        /// èŽ·å–æ‰€æœ‰æ°´æº
        /// </summary>
        /// <returns></returns>
        public List<RevitSource> GetAllWaterSources()
        public List<RevitSource> GetAllSources()
        {
            var list = new List<RevitSource>();
            if (this.Reservoirs != null && this.Reservoirs.Count > 0)
@@ -204,7 +254,7 @@
        }
        /// <summary>
        /// èŽ·å–æ‰€æœ‰è¿žæŽ¥èŠ‚ç‚¹
        /// èŽ·å–æ‰€æœ‰è¿žæŽ¥èŠ‚ç‚¹ç»„ä»¶
        /// </summary>
        public List<RevitJunction> GetAllJunctions()
        {
@@ -253,7 +303,7 @@
        }
        /// <summary>
        /// èŽ·å–æ‰€æœ‰æ‰©æ•£å™¨
        /// èŽ·å–æ‰€æœ‰æ‰©æ•£å™¨ç»„ä»¶
        /// </summary>
        public List<RevitEmitter> GetAllEmitters()
        {
@@ -272,7 +322,64 @@
        }
        /// <summary>
        /// èŽ·å–æ‰€æœ‰ç®¡é“
        /// èŽ·å–æ‰€æœ‰è¿žæŽ¥ç»„ä»¶
        /// </summary>
        public List<RevitCoupling> GetAllCouplings()
        {
            var list = new List<RevitCoupling>();
            if (this.Bluntheads != null && this.Bluntheads.Count > 0)
            {//闷头
                list.AddRange(this.Bluntheads);
            }
            if (this.Elbows != null && this.Elbows.Count > 0)
            {//弯头
                list.AddRange(this.Elbows);
            }
            if (this.Threelinks != null && this.Threelinks.Count > 0)
            {//三通
                list.AddRange(this.Threelinks);
            }
            if (this.Fourlinks != null && this.Fourlinks.Count > 0)
            {//四通
                list.AddRange(this.Fourlinks);
            }
            return list;
        }
        /// <summary>
        /// èŽ·å–æ‰€æœ‰ç®¡æ®µç»„ä»¶
        /// </summary>
        public List<RevitLink> GetAllLinks()
        {
            var list = new List<RevitLink>();
            if (this.Pipes != null && this.Pipes.Count > 0)
            {//管道
                list.AddRange(this.Pipes);
            }
            if (this.Translations != null && this.Translations.Count > 0)
            {//过渡件
                list.AddRange(this.Translations);
            }
            if (this.Exchangers != null && this.Exchangers.Count > 0)
            {//换热器
                list.AddRange(this.Exchangers);
            }
            if (this.Pumps != null && this.Pumps.Count > 0)
            {//æ°´æ³µ
                list.AddRange(this.Pumps);
            }
            if (this.Valves != null && this.Valves.Count > 0)
            {//阀门
                list.AddRange(this.Valves);
            }
            return list;
        }
        /// <summary>
        /// èŽ·å–æ‰€æœ‰ç®¡é“ç»„ä»¶
        /// </summary>
        public List<RevitPipe> GetAllPipes()
        {
Service/HStation.Service.Revit.Core/02-parter/00-core/RevitParter.cs
@@ -22,7 +22,6 @@
            this.Flags = rhs.Flags;
            this.Description = rhs.Description;
            this.ConnectList = rhs.ConnectList?.Select(x => new RevitConnect(x)).ToList();
            this.PropValueList = rhs.PropValueList?.Select(x => new RevitPropValue(x)).ToList();
            this.PropStatusList = rhs.PropStatusList?.Select(x => new RevitPropStatus(x)).ToList();
        }
@@ -56,11 +55,6 @@
        /// è¯´æ˜Ž
        /// </summary>    
        public string Description { get; set; }
        /// <summary>
        /// è¿žæŽ¥åˆ—表
        /// </summary>
        public List<RevitConnect> ConnectList { get; set; }
        /// <summary>
        /// å±žæ€§å€¼åˆ—表
Service/HStation.Service.Revit.Core/02-parter/01-visual/RevitVisual.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
namespace HStation.Model
{
    /// <summary>
    /// å¯è§ç»„ä»¶
    /// </summary>
    public abstract class RevitVisual : RevitParter
    {
        /// <summary>
        ///
        /// </summary>
        public RevitVisual() : base() { }
        /// <summary>
        ///
        /// </summary>
        public RevitVisual(RevitVisual rhs) : base(rhs)
        {
            this.ConnectList = rhs.ConnectList?.Select(x => new RevitConnect(x)).ToList();
        }
        /// <summary>
        /// è¿žæŽ¥åˆ—表
        /// </summary>
        public List<RevitConnect> ConnectList { get; set; }
    }
}
Service/HStation.Service.Revit.Core/02-parter/02-node/00-core/RevitNode.cs
@@ -1,9 +1,9 @@
namespace HStation.Model
{
    /// <summary>
    /// èŠ‚ç‚¹
    /// èŠ‚ç‚¹ç»„ä»¶
    /// </summary>
    public abstract class RevitNode : RevitParter
    public abstract class RevitNode : RevitVisual
    {
        /// <summary>
        /// 
@@ -28,5 +28,7 @@
        /// ä½ç½®
        /// </summary>
        public RevitPosition Position { get; set; }
    }
}
Service/HStation.Service.Revit.Core/02-parter/02-node/01-junction/00-core/RevitJunction.cs
ÎļþÃû´Ó Service/HStation.Service.Revit.Core/02-parter/02-node/03-junction/RevitJunction.cs ÐÞ¸Ä
@@ -8,7 +8,7 @@
        /// <summary>
        /// 
        /// </summary>
        public RevitJunction() { }
        public RevitJunction() : base() { }
        /// <summary>
        /// 
@@ -21,12 +21,12 @@
        }
        /// <summary>
        /// æ ‡é«˜
        /// æ ‡é«˜ (m)
        /// </summary>
        public double Elev { get; set; }
        /// <summary>
        /// éœ€æ°´é‡
        /// éœ€æ°´é‡ (m³/h)
        /// </summary>
        public double? Demand { get; set; }
Service/HStation.Service.Revit.Core/02-parter/02-node/01-junction/01-source/00-core/RevitSource.cs
Service/HStation.Service.Revit.Core/02-parter/02-node/01-junction/01-source/01-reservoir/RevitReservoir.cs
ÎļþÃû´Ó Service/HStation.Service.Revit.Core/02-parter/02-node/01-reservoir/RevitReservoir.cs ÐÞ¸Ä
@@ -8,7 +8,7 @@
        /// <summary>
        /// 
        /// </summary>
        public RevitReservoir() { }
        public RevitReservoir() : base() { }
        /// <summary>
        /// 
@@ -21,12 +21,12 @@
        }
        /// <summary>
        /// æ± åº•标高
        /// æ± åº•标高 (m)
        /// </summary>
        public double? PoolElev { get; set; }
        /// <summary>
        /// æ€»æ°´å¤´
        /// æ€»æ°´å¤´ (m)
        /// </summary>
        public double Head { get; set; }
Service/HStation.Service.Revit.Core/02-parter/02-node/01-junction/01-source/02-tank/RevitTank.cs
ÎļþÃû´Ó Service/HStation.Service.Revit.Core/02-parter/02-node/02-tank/RevitTank.cs ÐÞ¸Ä
@@ -8,7 +8,7 @@
        /// <summary>
        /// 
        /// </summary>
        public RevitTank() { }
        public RevitTank() : base() { }
        /// <summary>
        /// 
@@ -19,39 +19,39 @@
            this.InitLevel = rhs.InitLevel;
            this.MinLevel = rhs.MinLevel;
            this.MaxLevel = rhs.MaxLevel;
            this.Diameter = rhs.Diameter;
            this.DN = rhs.DN;
            this.MinVol = rhs.MinVol;
            this.VolCurve = rhs.VolCurve;
            this.OverFlow = rhs.OverFlow;
        }
        /// <summary>
        /// æ± åº•标高
        /// æ± åº•标高 (m)
        /// </summary>
        public double PoolElev { get; set; }
        /// <summary>
        /// åˆå§‹æ°´ä½
        /// åˆå§‹æ°´ä½ (m)
        /// </summary>
        public double InitLevel { get; set; }
        /// <summary>
        /// æœ€ä½Žæ°´ä½
        /// æœ€ä½Žæ°´ä½ (m)
        /// </summary>
        public double MinLevel { get; set; }
        /// <summary>
        /// æœ€é«˜æ°´ä½
        /// æœ€é«˜æ°´ä½ (m)
        /// </summary>
        public double MaxLevel { get; set; }
        /// <summary>
        /// ç›´å¾„
        /// å…¬ç§°ç›´å¾„ (m)
        /// </summary>
        public double Diameter { get; set; }
        public double DN { get; set; }
        /// <summary>
        /// æœ€å°å®¹ç§¯
        /// æœ€å°å®¹ç§¯ (m³)
        /// </summary>
        public double MinVol { get; set; }
Service/HStation.Service.Revit.Core/02-parter/02-node/01-junction/01-source/02-tank/RevitWaterbox.cs
ÎļþÃû´Ó Service/HStation.Service.Revit.Core/02-parter/02-node/02-tank/RevitWaterbox.cs ÐÞ¸Ä
@@ -8,7 +8,7 @@
        /// <summary>
        /// 
        /// </summary>
        public RevitWaterbox() { }
        public RevitWaterbox() : base() { }
        /// <summary>
        /// 
Service/HStation.Service.Revit.Core/02-parter/02-node/01-junction/02-coupling/00-core/RevitCoupling.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,38 @@
namespace HStation.Model
{
    /// <summary>
    /// è¿žæŽ¥ç»„ä»¶
    /// </summary>
    public class RevitCoupling : RevitJunction
    {
        /// <summary>
        ///
        /// </summary>
        public RevitCoupling() : base() { }
        /// <summary>
        ///
        /// </summary>
        public RevitCoupling(RevitCoupling rhs) : base(rhs)
        {
        }
        /// <summary>
        /// æè´¨
        /// </summary>
        public string Material { get; set; }
        /// <summary>
        /// å£å¾„(mm)
        /// </summary>
        public double? Caliber { get; set; }
        /// <summary>
        /// å±€éƒ¨é˜»åŠ›ç³»æ•°
        /// </summary>
        public double? MinorLoss { get; set; }
    }
}
Service/HStation.Service.Revit.Core/02-parter/02-node/01-junction/02-coupling/01-blunthead/RevitBlunthead.cs
ÎļþÃû´Ó Service/HStation.Service.Revit.Core/02-parter/02-node/03-junction/RevitBlunthead.cs ÐÞ¸Ä
@@ -1,14 +1,14 @@
namespace HStation.Model
{
    /// <summary>
    /// é—·å¤´
    /// é—·å¤´ç»„ä»¶
    /// </summary>
    public class RevitBlunthead : RevitJunction
    public class RevitBlunthead : RevitCoupling
    {
        /// <summary>
        /// 
        /// </summary>
        public RevitBlunthead() { }
        public RevitBlunthead() : base() { }
        /// <summary>
        /// 
Service/HStation.Service.Revit.Core/02-parter/02-node/01-junction/02-coupling/02-elbow/RevitElbow.cs
ÎļþÃû´Ó Service/HStation.Service.Revit.Core/02-parter/02-node/03-junction/RevitElbow.cs ÐÞ¸Ä
@@ -3,12 +3,12 @@
    /// <summary>
    /// å¼¯å¤´
    /// </summary>
    public class RevitElbow : RevitJunction
    public class RevitElbow : RevitCoupling
    {
        /// <summary>
        /// 
        /// </summary>
        public RevitElbow() { }
        public RevitElbow() : base() { }
        /// <summary>
        /// 
Service/HStation.Service.Revit.Core/02-parter/02-node/01-junction/02-coupling/03-threelink/RevitThreelink.cs
ÎļþÃû´Ó Service/HStation.Service.Revit.Core/02-parter/02-node/03-junction/RevitThreelink.cs ÐÞ¸Ä
@@ -3,12 +3,12 @@
    /// <summary>
    /// ä¸‰é€š
    /// </summary>
    public class RevitThreelink : RevitJunction
    public class RevitThreelink : RevitCoupling
    {
        /// <summary>
        /// 
        /// </summary>
        public RevitThreelink() { }
        public RevitThreelink() : base() { }
        /// <summary>
        /// 
Service/HStation.Service.Revit.Core/02-parter/02-node/01-junction/02-coupling/04-fourlink/RevitFourlink.cs
ÎļþÃû´Ó Service/HStation.Service.Revit.Core/02-parter/02-node/03-junction/RevitFourlink.cs ÐÞ¸Ä
@@ -3,12 +3,12 @@
    /// <summary>
    /// å››é€š
    /// </summary>
    public class RevitFourlink : RevitJunction
    public class RevitFourlink : RevitCoupling
    {
        /// <summary>
        /// 
        /// </summary>
        public RevitFourlink() { }
        public RevitFourlink() : base() { }
        /// <summary>
        /// 
Service/HStation.Service.Revit.Core/02-parter/02-node/01-junction/03-emitter/00-core/RevitEmitter.cs
Service/HStation.Service.Revit.Core/02-parter/02-node/01-junction/03-emitter/01-nozzle/RevitNozzle.cs
ÎļþÃû´Ó Service/HStation.Service.Revit.Core/02-parter/02-node/03-junction/RevitNozzle.cs ÐÞ¸Ä
@@ -8,7 +8,7 @@
        /// <summary>
        /// 
        /// </summary>
        public RevitNozzle() { }
        public RevitNozzle() : base() { }
        /// <summary>
        /// 
Service/HStation.Service.Revit.Core/02-parter/02-node/01-junction/03-emitter/02-hydrant/RevitHydrant.cs
ÎļþÃû´Ó Service/HStation.Service.Revit.Core/02-parter/02-node/03-junction/RevitHydrant.cs ÐÞ¸Ä
@@ -8,7 +8,7 @@
        /// <summary>
        /// 
        /// </summary>
        public RevitHydrant() { }
        public RevitHydrant() : base() { }
        /// <summary>
        /// 
Service/HStation.Service.Revit.Core/02-parter/02-node/01-junction/04-meter/RevitMeter.cs
ÎļþÃû´Ó Service/HStation.Service.Revit.Core/02-parter/02-node/03-junction/RevitMeter.cs ÐÞ¸Ä
@@ -8,7 +8,7 @@
        /// <summary>
        /// 
        /// </summary>
        public RevitMeter() { }
        public RevitMeter() : base() { }
        /// <summary>
        /// 
Service/HStation.Service.Revit.Core/02-parter/02-node/01-junction/05-other/RevitFlowmeter.cs
ÎļþÃû´Ó Service/HStation.Service.Revit.Core/02-parter/02-node/03-junction/RevitFlowmeter.cs ÐÞ¸Ä
@@ -8,7 +8,7 @@
        /// <summary>
        /// 
        /// </summary>
        public RevitFlowmeter() { }
        public RevitFlowmeter() : base() { }
        /// <summary>
        /// 
Service/HStation.Service.Revit.Core/02-parter/02-node/01-junction/05-other/RevitPressmeter.cs
ÎļþÃû´Ó Service/HStation.Service.Revit.Core/02-parter/02-node/03-junction/RevitPressmeter.cs ÐÞ¸Ä
@@ -8,7 +8,7 @@
        /// <summary>
        /// 
        /// </summary>
        public RevitPressmeter() { }
        public RevitPressmeter() : base() { }
        /// <summary>
        /// 
Service/HStation.Service.Revit.Core/02-parter/03-link/00-core/RevitLink.cs
@@ -3,12 +3,12 @@
    /// <summary>
    /// ç®¡æ®µ
    /// </summary>
    public abstract class RevitLink : RevitParter
    public abstract class RevitLink : RevitVisual
    {
        /// <summary>
        /// 
        /// </summary>
        public RevitLink() { }
        public RevitLink() : base() { }
        /// <summary>
        /// 
@@ -42,12 +42,12 @@
        public string LinkStatus { get; set; }
        /// <summary>
        /// ä¸Šæ¸¸æ ‡é«˜
        /// ä¸Šæ¸¸æ ‡é«˜ (m)
        /// </summary>
        public double StartElev { get; set; }
        /// <summary>
        /// ä¸‹æ¸¸æ ‡é«˜
        /// ä¸‹æ¸¸æ ‡é«˜ (m)
        /// </summary>
        public double EndElev { get; set; }
Service/HStation.Service.Revit.Core/02-parter/03-link/01-pipe/RevitExchanger.cs
@@ -8,7 +8,7 @@
        /// <summary>
        /// 
        /// </summary>
        public RevitExchanger() { }
        public RevitExchanger() : base() { }
        /// <summary>
        /// 
Service/HStation.Service.Revit.Core/02-parter/03-link/01-pipe/RevitPipe.cs
@@ -8,24 +8,19 @@
        /// <summary>
        /// 
        /// </summary>
        public RevitPipe() { }
        public RevitPipe() : base() { }
        /// <summary>
        /// 
        /// </summary>
        public RevitPipe(RevitPipe rhs) : base(rhs)
        {
            this.Diameter = rhs.Diameter;
            this.Material = rhs.Material;
            this.Diameter = rhs.Diameter;
            this.Length = rhs.Length;
            this.Roughness = rhs.Roughness;
            this.MinorLoss = rhs.MinorLoss;
        }
        /// <summary>
        /// ç›´å¾„(内径) mm
        /// </summary>
        public double Diameter { get; set; }
        /// <summary>
        /// æè´¨
@@ -33,7 +28,12 @@
        public string Material { get; set; }
        /// <summary>
        /// é•¿åº¦
        /// ç›´å¾„ (mm)
        /// </summary>
        public double Diameter { get; set; }
        /// <summary>
        /// é•¿åº¦ (m)
        /// </summary>
        public double Length { get; set; }
@@ -47,5 +47,7 @@
        /// </summary>
        public double MinorLoss { get; set; }
    }
}
Service/HStation.Service.Revit.Core/02-parter/03-link/01-pipe/RevitTranslation.cs
@@ -8,7 +8,7 @@
        /// <summary>
        /// 
        /// </summary>
        public RevitTranslation() { }
        public RevitTranslation() : base() { }
        /// <summary>
        /// 
Service/HStation.Service.Revit.Core/02-parter/03-link/02-pump/RevitPump.cs
@@ -8,26 +8,51 @@
        /// <summary>
        /// 
        /// </summary>
        public RevitPump() { }
        public RevitPump() : base() { }
        /// <summary>
        /// 
        /// </summary>
        public RevitPump(RevitPump rhs) : base(rhs)
        {
            this.RatedPower = rhs.RatedPower;
            this.RatedP = rhs.RatedP;
            this.RatedQ = rhs.RatedQ;
            this.RatedH = rhs.RatedH;
            this.RatedN = rhs.RatedN;
            this.RatedHz = rhs.RatedHz;
            this.CurveQH = rhs.CurveQH;
            this.CurveQP = rhs.CurveQP;
            this.CurveQE = rhs.CurveQE;
            this.SpeedRatio = rhs.SpeedRatio;
            this.SpeedRatioPattern = rhs.SpeedRatioPattern;
            this.Price = rhs.Price;
            this.PricePattern = rhs.PricePattern;
            this.CurveQE = rhs.CurveQE;
        }
        /// <summary>
        ///  é¢å®šåŠŸçŽ‡
        ///  é¢å®šåŠŸçŽ‡ (kW)
        /// </summary>
        public double RatedPower { get; set; }
        public double RatedP { get; set; }
        /// <summary>
        /// é¢å®šæµé‡ï¼ˆm³/h)
        /// </summary>
        public double? RatedQ { get; set; }
        /// <summary>
        /// é¢å®šæ‰¬ç¨‹ï¼ˆm)
        /// </summary>
        public double? RatedH { get; set; }
        /// <summary>
        /// é¢å®šè½¬é€Ÿï¼ˆr/min)
        /// </summary>
        public double? RatedN { get; set; }
        /// <summary>
        /// é¢å®šé¢‘率
        /// </summary>
        public double RatedHz { get; set; }
        /// <summary>
        /// æµé‡æ‰¬ç¨‹æ›²çº¿
@@ -35,9 +60,19 @@
        public string CurveQH { get; set; }
        /// <summary>
        /// è½¬é€Ÿæ¯”
        /// æµé‡åŠŸçŽ‡æ›²çº¿
        /// </summary>
        public double? SpeedRatio { get; set; }
        public string CurveQP { get; set; }
        /// <summary>
        ///  æµé‡æ•ˆçŽ‡æ›²çº¿
        /// </summary>
        public string CurveQE { get; set; }
        /// <summary>
        /// è½¬é€Ÿæ¯”[0,1]
        /// </summary>
        public double SpeedRatio { get; set; }
        /// <summary>
        ///  è½¬é€Ÿæ¯”模式
@@ -54,10 +89,7 @@
        /// </summary>
        public string PricePattern { get; set; }
        /// <summary>
        ///  æµé‡æ•ˆçŽ‡æ›²çº¿
        /// </summary>
        public string CurveQE { get; set; }
Service/HStation.Service.Revit.Core/02-parter/03-link/03-valve/RevitValve.cs
@@ -8,7 +8,7 @@
        /// <summary>
        /// 
        /// </summary>
        public RevitValve() { }
        public RevitValve() : base() { }
        /// <summary>
        /// 
@@ -21,10 +21,8 @@
            this.ValveSetting = rhs.ValveSetting;
        }
        /// <summary>
        /// é˜€é—¨ç›´å¾„
        /// é˜€é—¨ç›´å¾„ (mm)
        /// </summary>
        public double Diameter { get; set; }
Service/HStation.Service.Revit.Core/02-parter/09-model/RevitConnect.cs
Service/HStation.Service.Revit.Core/02-parter/09-model/RevitPosition.cs
ÎļþÃû´Ó Service/HStation.Service.Revit.Core/02-parter/00-core/RevitPosition.cs ÐÞ¸Ä
@@ -47,6 +47,8 @@
        /// Z
        /// </summary>
        public double Z { get; set; }
    }
Service/HStation.Service.Revit.Core/02-parter/09-model/RevitPropStatus.cs
ÎļþÃû´Ó Service/HStation.Service.Revit.Core/02-parter/02-node/00-core/RevitPropStatus.cs ÐÞ¸Ä
@@ -25,9 +25,12 @@
        /// </summary>
        public RevitPropStatus(RevitPropStatus rhs)
        {
            this.PropName = rhs.PropName;
            this.PropStatus = rhs.PropStatus;
            this.StatusInfo = rhs.StatusInfo;
            if (rhs != null)
            {
                this.PropName = rhs.PropName;
                this.PropStatus = rhs.PropStatus;
                this.StatusInfo = rhs.StatusInfo;
            }
        }
        /// <summary>
Service/HStation.Service.Revit.Core/02-parter/09-model/RevitPropValue.cs
ÎļþÃû´Ó Service/HStation.Service.Revit.Core/02-parter/00-core/RevitPropValue.cs ÐÞ¸Ä
@@ -24,8 +24,11 @@
        /// </summary>
        public RevitPropValue(RevitPropValue rhs)
        {
            this.PropName = rhs.PropName;
            this.PropValue = rhs.PropValue;
            if (rhs != null)
            {
                this.PropName = rhs.PropName;
                this.PropValue = rhs.PropValue;
            }
        }
        /// <summary>
Service/HStation.Service.Revit.Core/04-service/01-json/00-core/RevitJsonProp.cs
@@ -51,8 +51,6 @@
        /// </summary>
        public const string Quality = "初始水质";
        #region æ ‡é«˜
        /// <summary>
        /// æ ‡é«˜ä¿¡æ¯
        /// </summary>
@@ -78,8 +76,6 @@
        /// </summary>
        public const string PoolElev = "池底标高";
        #endregion
        /// <summary>
        /// éœ€æ°´é‡ï¼ˆè¿žæŽ¥èŠ‚ç‚¹ï¼‰
        /// </summary>
@@ -90,7 +86,10 @@
        /// </summary>
        public const string DemandPattern = "需水模式";
        #region æ‰©æ•£ç³»æ•°
        /// <summary>
        /// æµé‡/喷射系数
        /// </summary>
        public const string CoefficientP = "喷射系数";
        /// <summary>
        /// æµé‡/喷射系数
@@ -98,23 +97,9 @@
        public const string CoefficientF = "流量系数";
        /// <summary>
        /// æµé‡/喷射系数
        /// </summary>
        public const string CoefficientP = "喷射系数";
        #endregion
        #region æè´¨
        /// <summary>
        /// æè´¨
        /// </summary>
        public const string Material = "材质";
        #endregion
        /// <summary>
        /// æ€»æ°´å¤´ï¼ˆæ°´åº“)
@@ -125,8 +110,6 @@
        /// æ°´å¤´æ¨¡å¼ï¼ˆæ°´åº“)
        /// </summary>
        public const string HeadPattern = "水头模式";
        /// <summary>
        /// åˆå§‹æ°´ä½ï¼ˆæ°´æ± ï¼‰
@@ -153,8 +136,6 @@
        /// </summary>
        public const string VolCurve = "容积曲线";
        /// <summary>
        /// ç›´å¾„
        /// </summary>
@@ -163,25 +144,22 @@
        /// <summary>
        /// å…¬ç§°ç›´å¾„
        /// </summary>
        public const string NominalDiameter = "公称直径";
        public const string DN = "公称直径";
        /// <summary>
        /// å£å¾„
        /// </summary>
        public const string Caliber = "口径";
        /// <summary>
        /// å†…径
        /// </summary>
        public const string InternalDiameter = "内径";
        /// <summary>
        /// ç®¡æ®µçŠ¶æ€/管道状态
        /// </summary>
        public const string LinkStatusPipe = "管道状态";
        /// <summary>
        /// ä¸Šæ¸¸åˆå§‹æ°´è´¨
@@ -214,14 +192,44 @@
        public const string LinkStatusPump = "水泵状态";
        /// <summary>
        /// é¢å®šåŠŸçŽ‡ï¼ˆæ°´æ³µï¼‰
        /// é¢å®šåŠŸçŽ‡
        /// </summary>
        public const string RatedPower = "额定功率";
        public const string RatedP = "额定功率";
        /// <summary>
        /// æµé‡æ‰¬ç¨‹æ›²çº¿ï¼ˆæ°´æ³µï¼‰
        /// é¢å®šæµé‡
        /// </summary>
        public const string RatedQ = "额定流量";
        /// <summary>
        /// é¢å®šæ‰¬ç¨‹
        /// </summary>
        public const string RatedH = "额定扬程";
        /// <summary>
        /// é¢å®šè½¬é€Ÿ
        /// </summary>
        public const string RatedN = "额定转速";
        /// <summary>
        /// é¢å®šé¢‘率
        /// </summary>
        public const string RatedHz = "额定频率";
        /// <summary>
        /// æµé‡æ‰¬ç¨‹æ›²çº¿
        /// </summary>
        public const string CurveQH = "流量扬程曲线";
        /// <summary>
        /// æµé‡åŠŸçŽ‡æ›²çº¿
        /// </summary>
        public const string CurveQP = "流量功率曲线";
        /// <summary>
        /// æµé‡æ•ˆçŽ‡æ›²çº¿
        /// </summary>
        public const string CurveQE = "流量效率曲线";
        /// <summary>
        /// è½¬é€Ÿæ¯”(水泵)
@@ -242,11 +250,6 @@
        /// ä»·æ ¼æ¨¡å¼ï¼ˆæ°´æ³µï¼‰
        /// </summary>
        public const string PricePattern = "价格模式";
        /// <summary>
        /// æµé‡æ•ˆçŽ‡æ›²çº¿ï¼ˆæ°´æ³µï¼‰
        /// </summary>
        public const string CurveQE = "流量效率曲线";
        /// <summary>
        /// é˜€é—¨çŠ¶æ€
Service/HStation.Service.Revit.Core/04-service/01-json/02-helper/RevitConnectListExtensions.cs
@@ -1,6 +1,4 @@
using HStation.Model;
namespace HStation.Service
namespace HStation.Service
{
    /// <summary>
    /// è¿žæŽ¥åˆ—表拓展
@@ -12,7 +10,7 @@
        /// </summary>
        /// <param name="list">连接列表</param>
        /// <returns></returns>
        public static RevitPosition GetCenterPosition(this List<RevitConnect> list)
        public static Model.RevitPosition GetCenterPosition(this List<Model.RevitConnect> list)
        {
            if (list == null || list.Count < 1)
            {
@@ -27,7 +25,7 @@
        /// </summary>
        /// <param name="list">连接列表</param>
        /// <returns></returns>
        public static RevitConnect GetStartConnect(this List<RevitConnect> list)
        public static Model.RevitConnect GetStartConnect(this List<Model.RevitConnect> list)
        {
            if (list == null || list.Count < 1)
            {
@@ -46,7 +44,7 @@
        /// </summary>
        /// <param name="list">连接列表</param>
        /// <returns></returns>
        public static List<RevitConnect> GetStartConnects(this List<RevitConnect> list)
        public static List<Model.RevitConnect> GetStartConnects(this List<Model.RevitConnect> list)
        {
            if (list == null || list.Count < 1)
            {
@@ -61,7 +59,7 @@
        /// </summary>
        /// <param name="list">连接列表</param>
        /// <returns></returns>
        public static RevitConnect GetEndConnect(this List<RevitConnect> list)
        public static Model.RevitConnect GetEndConnect(this List<Model.RevitConnect> list)
        {
            if (list == null || list.Count < 1)
            {
@@ -80,7 +78,7 @@
        /// </summary>
        /// <param name="list">连接列表</param>
        /// <returns></returns>
        public static List<RevitConnect> GetEndConnects(this List<RevitConnect> list)
        public static List<Model.RevitConnect> GetEndConnects(this List<Model.RevitConnect> list)
        {
            if (list == null || list.Count < 1)
            {
Service/HStation.Service.Revit.Core/04-service/01-json/02-helper/RevitParterExtensions.cs
@@ -1,29 +1,69 @@
using HStation.Model;
namespace HStation.Service
namespace HStation.Service
{
    /// <summary>
    ///
    /// Revit组件拓展
    /// </summary>
    internal static class RevitParterExtensions
    {
        /// <summary>
        /// èŽ·å–å±žæ€§çŠ¶æ€
        /// </summary>
        public static HStation.Model.RevitPropStatus GetPropStatus(this HStation.Model.RevitParter parter, string propName)
        {
            if (string.IsNullOrEmpty(propName))
            {
                return default;
            }
            var propStatus = parter.PropStatusList?.Find(x => x.PropName == propName);
            return propStatus;
        }
        /// <summary>
        ///
        /// æ˜¯å¦å­˜åœ¨å±žæ€§çŠ¶æ€
        /// </summary>
        public static void AppendPropStatus(this RevitParter rhs, string propName, ePropStatus propStatus, string statusInfo)
        public static bool IsExistPropStatus(this HStation.Model.RevitParter parter, string propName)
        {
            if (rhs == null)
            if (string.IsNullOrEmpty(propName))
            {
                return;
                return false;
            }
            if (rhs.PropStatusList == null)
            if (parter.PropStatusList == null || parter.PropStatusList.Count < 1)
            {
                rhs.PropStatusList = new List<RevitPropStatus>();
                return false;
            }
            var status = new RevitPropStatus(propName, propStatus, statusInfo);
            rhs.PropStatusList.Add(status);
            return parter.PropStatusList.Exists(x => x.PropName == propName);
        }
        /// <summary>
        /// æ·»åŠ æˆ–è€…æ›´æ–°å±žæ€§çŠ¶æ€
        /// </summary>
        public static bool AppendOrUpdatePropStatus(this HStation.Model.RevitParter parter, string propName, ePropStatus propStatus, string statusInfo)
        {
            if (parter == null)
            {
                return false;
            }
            if (string.IsNullOrEmpty(propName))
            {
                return false;
            }
            if (parter.PropStatusList == null)
            {
                parter.PropStatusList = new List<Model.RevitPropStatus>();
            }
            var propStatusModel = parter.GetPropStatus(propName);
            if (propStatusModel == null)
            {
                propStatusModel = new Model.RevitPropStatus() { PropName = propName };
                parter.PropStatusList.Add(propStatusModel);
            }
            propStatusModel.PropStatus = propStatus;
            propStatusModel.StatusInfo = statusInfo;
            return true;
        }
    }
}
Service/HStation.Service.Revit.Core/04-service/01-json/02-helper/RevitPositionListExtensions.cs
@@ -1,6 +1,4 @@
using HStation.Model;
namespace HStation.Service
namespace HStation.Service
{
    /// <summary>
    /// 
@@ -12,13 +10,13 @@
        /// </summary>
        /// <param name="list">位置列表</param>
        /// <returns></returns>
        public static RevitPosition GetCenter(this List<RevitPosition> list)
        public static Model.RevitPosition GetCenter(this List<Model.RevitPosition> list)
        {
            if (list == null || list.Count < 1)
            {
                return default;
            }
            return new RevitPosition()
            return new Model.RevitPosition()
            {
                X = list.Average(x => x.X),
                Y = list.Average(x => x.Y),
Service/HStation.Service.Revit.Core/04-service/01-json/RevitJsonHelper.cs
ÎļþÌ«´ó
Service/HStation.Service.Revit.Core/04-service/02-correct/RevitCorrectHelper.cs
@@ -44,7 +44,7 @@
        private static bool Zero(Model.RevitModel rhs, out string msg)
        {
            msg = string.Empty;
            var allWaterSourceList = rhs.GetAllWaterSources();
            var allWaterSourceList = rhs.GetAllSources();
            if (allWaterSourceList == null || allWaterSourceList.Count < 1)
            {
                msg = "无水源";