lixiaojun
2024-08-13 a5c91970e4424faa5848d814d671a7534b900d69
新增Revit 水表与换热器
已修改5个文件
已添加2个文件
310 ■■■■■ 文件已修改
Desktop/HStation.Desktop.Xhs.Core/Program.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Service/HStation.Service.Revit.Core/01-model/RevitModel.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Service/HStation.Service.Revit.Core/01-model/RevitModel_Method.cs 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Service/HStation.Service.Revit.Core/02-parter/02-node/RevitMeter.cs 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Service/HStation.Service.Revit.Core/02-parter/03-link/RevitExchanger.cs 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Service/HStation.Service.Revit.Core/04-service/01-json/RevitJsonHelper.cs 108 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Service/HStation.Service.Revit.Core/04-service/01-json/model/RevitJsonCatalog.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Desktop/HStation.Desktop.Xhs.Core/Program.cs
@@ -61,7 +61,7 @@
                //    return;
                //}
                Yw.FileFolderZipHelper.Zip(@"C:\Users\admin\Desktop\居家办公工作\简单用例", @"C:\Users\admin\Desktop\居家办公工作\简单用例.ywrvt");
                Yw.FileFolderZipHelper.Zip(@"C:\Users\admin\Desktop\居家办公工作\循环水用例", @"C:\Users\admin\Desktop\居家办公工作\循环水用例.ywrvt");
                //var json = RevitTestHelper.GenerateJson();
Service/HStation.Service.Revit.Core/01-model/RevitModel.cs
@@ -16,6 +16,7 @@
            this.Junctions = new List<RevitJunction>();
            this.Nozzles = new List<RevitNozzle>();
            this.Hydrants = new List<RevitHydrant>();
            this.Meters = new List<RevitMeter>();
            this.Flowmeters = new List<RevitFlowmeter>();
            this.Pressmeters = new List<RevitPressmeter>();
            this.Elbows = new List<RevitElbow>();
@@ -27,6 +28,7 @@
            this.Valves = new List<RevitValve>();
            this.Pipes = new List<RevitPipe>();
            this.Translations = new List<RevitTranslation>();
            this.Exchangers = new List<RevitExchanger>();
            this.Decorators = new List<RevitDecorator>();
        }
@@ -45,6 +47,7 @@
            this.Junctions = rhs.Junctions;
            this.Nozzles = rhs.Nozzles;
            this.Hydrants = rhs.Hydrants;
            this.Meters = rhs.Meters;
            this.Flowmeters = rhs.Flowmeters;
            this.Pressmeters = rhs.Pressmeters;
            this.Elbows = rhs.Elbows;
@@ -56,6 +59,7 @@
            this.Valves = rhs.Valves;
            this.Pipes = rhs.Pipes;
            this.Translations = rhs.Translations;
            this.Exchangers = rhs.Exchangers;
            this.Decorators = rhs.Decorators;
        }
@@ -128,6 +132,11 @@
        public List<RevitBlunthead> Bluntheads { get; set; }
        /// <summary>
        /// æ°´è¡¨
        /// </summary>
        public List<RevitMeter> Meters { get; set; }
        /// <summary>
        /// æµé‡è®¡åˆ—表
        /// </summary>
        public List<RevitFlowmeter> Flowmeters { get; set; }
@@ -161,6 +170,11 @@
        /// </summary>
        public List<RevitTranslation> Translations { get; set; }
        /// <summary>
        /// æ¢çƒ­å™¨åˆ—表
        /// </summary>
        public List<RevitExchanger> Exchangers { get; set; }
        #endregion
        #region è£…饰件
Service/HStation.Service.Revit.Core/01-model/RevitModel_Method.cs
@@ -35,6 +35,10 @@
            {
                list.AddRange(this.Hydrants);
            }
            if (this.Meters != null && this.Meters.Count > 0)
            {
                list.AddRange(this.Meters);
            }
            if (this.Flowmeters != null && this.Flowmeters.Count > 0)
            {
                list.AddRange(this.Flowmeters);
@@ -67,6 +71,10 @@
            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)
            {
@@ -111,6 +119,10 @@
            if (this.Hydrants != null && this.Hydrants.Count > 0)
            {
                list.AddRange(this.Hydrants);
            }
            if (this.Meters != null && this.Meters.Count > 0)
            {
                list.AddRange(this.Meters);
            }
            if (this.Flowmeters != null && this.Flowmeters.Count > 0)
            {
@@ -179,6 +191,10 @@
            {
                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);
@@ -210,6 +226,10 @@
            if (this.Hydrants != null && this.Hydrants.Count > 0)
            {
                list.AddRange(this.Hydrants);
            }
            if (this.Meters != null && this.Meters.Count > 0)
            {
                list.AddRange(this.Meters);
            }
            if (this.Flowmeters != null && this.Flowmeters.Count > 0)
            {
@@ -287,6 +307,10 @@
            {
                list.AddRange(this.Translations);
            }
            if (this.Exchangers != null && this.Exchangers.Count > 0)
            {
                list.AddRange(this.Exchangers);
            }
            return list;
        }
Service/HStation.Service.Revit.Core/02-parter/02-node/RevitMeter.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,52 @@
namespace HStation.Model
{
    /// <summary>
    /// æ°´è¡¨
    /// </summary>
    public class RevitMeter : RevitParter, IRevitJunction
    {
        /// <summary>
        ///
        /// </summary>
        public RevitMeter() { }
        /// <summary>
        ///
        /// </summary>
        public RevitMeter(RevitMeter rhs) : base(rhs)
        {
            this.Quality = rhs.Quality;
            this.Position = rhs.Position;
            this.Elev = rhs.Elev;
            this.Demand = rhs.Demand;
            this.DemandPattern = rhs.DemandPattern;
        }
        /// <summary>
        /// åˆå§‹æ°´è´¨
        /// </summary>
        public double Quality { get; set; }
        /// <summary>
        /// ä½ç½®
        /// </summary>
        public RevitPosition Position { get; set; }
        /// <summary>
        /// æ ‡é«˜
        /// </summary>
        public double Elev { get; set; }
        /// <summary>
        /// éœ€æ°´é‡
        /// </summary>
        public double? Demand { get; set; }
        /// <summary>
        /// éœ€æ°´æ¨¡å¼
        /// </summary>
        public string DemandPattern { get; set; }
    }
}
Service/HStation.Service.Revit.Core/02-parter/03-link/RevitExchanger.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,100 @@
namespace HStation.Model
{
    /// <summary>
    /// æ¢çƒ­å™¨
    /// </summary>
    public class RevitExchanger : RevitParter, IRevitPipe
    {
        /// <summary>
        ///
        /// </summary>
        public RevitExchanger() { }
        /// <summary>
        ///
        /// </summary>
        public RevitExchanger(RevitExchanger rhs) : base(rhs)
        {
            this.StartCode = rhs.StartCode;
            this.EndCode = rhs.EndCode;
            this.LinkStatus = rhs.LinkStatus;
            this.StartElev = rhs.StartElev;
            this.EndElev = rhs.EndElev;
            this.StartQuality = rhs.StartQuality;
            this.EndQuality = rhs.EndQuality;
            this.StartPosition = rhs.StartPosition;
            this.EndPosition = rhs.EndPosition;
            this.Diameter = rhs.Diameter;
            this.Length = rhs.Length;
            this.Roughness = rhs.Roughness;
            this.MinorLoss = rhs.MinorLoss;
        }
        /// <summary>
        /// ä¸Šæ¸¸èŠ‚ç‚¹ç¼–ç 
        /// </summary>
        public string StartCode { get; set; }
        /// <summary>
        /// ä¸‹æ¸¸èŠ‚ç‚¹ç¼–ç 
        /// </summary>
        public string EndCode { get; set; }
        /// <summary>
        /// ç®¡é“状态
        /// </summary>
        public string LinkStatus { get; set; }
        /// <summary>
        /// ä¸Šæ¸¸æ ‡é«˜
        /// </summary>
        public double StartElev { get; set; }
        /// <summary>
        /// ä¸‹æ¸¸æ ‡é«˜
        /// </summary>
        public double EndElev { get; set; }
        /// <summary>
        /// ä¸Šæ¸¸åˆå§‹æ°´è´¨
        /// </summary>
        public double StartQuality { get; set; }
        /// <summary>
        /// ä¸‹æ¸¸åˆå§‹æ°´è´¨
        /// </summary>
        public double EndQuality { get; set; }
        /// <summary>
        /// å¼€å§‹ä½ç½®
        /// </summary>
        public RevitPosition StartPosition { get; set; }
        /// <summary>
        /// ç»“束位置
        /// </summary>
        public RevitPosition EndPosition { get; set; }
        /// <summary>
        /// ç›´å¾„(内径) mm
        /// </summary>
        public double Diameter { get; set; }
        /// <summary>
        /// é•¿åº¦
        /// </summary>
        public double Length { get; set; }
        /// <summary>
        /// ç²—糙系数
        /// </summary>
        public double Roughness { get; set; }
        /// <summary>
        /// å±€éƒ¨é˜»åŠ›ç³»æ•°
        /// </summary>
        public double MinorLoss { get; set; }
    }
}
Service/HStation.Service.Revit.Core/04-service/01-json/RevitJsonHelper.cs
@@ -320,6 +320,43 @@
                                model.Fourlinks.Add(fourlink);
                            }
                            break;
                        case RevitJsonCatalog.Meter:
                            {
                                var meter = new Model.RevitMeter();
                                meter.Id = jobject[RevitJsonProp.Id].ToString();
                                meter.Code = jobject[RevitJsonProp.Code].ToString();
                                if (string.IsNullOrEmpty(meter.Code))
                                {
                                    meter.Code = meter.Id;
                                }
                                meter.Name = jobject[RevitJsonProp.Name].ToString();
                                meter.ModelType = jobject[RevitJsonProp.ModelType].ToString();
                                meter.Flags = Yw.Untity.FlagsHelper.ToList(jobject[RevitJsonProp.Flags].ToString());
                                meter.Description = jobject[RevitJsonProp.Description].ToString();
                                if (jobject[RevitJsonProp.Quality].MatchNumeric(out double quality))
                                {
                                    meter.Quality = quality;
                                }
                                var linkList = JsonHelper.Json2Object<List<RevitJsonLinkerModel>>(jobject[RevitJsonProp.Links].ToString());
                                var centerPoint = linkList.GetCenterPoint();
                                meter.Position = new Model.RevitPosition()
                                {
                                    X = centerPoint.X,
                                    Y = centerPoint.Y,
                                    Z = centerPoint.Z
                                };
                                if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev))
                                {
                                    meter.Elev = elev;
                                }
                                if (jobject[RevitJsonProp.Demand].MatchNumeric(out double demand))
                                {
                                    meter.Demand = demand;
                                }
                                meter.DemandPattern = jobject[RevitJsonProp.DemandPattern].ToString();
                                model.Meters.Add(meter);
                            }
                            break;
                        case RevitJsonCatalog.Flowmeter:
                            {
                                var flowmeter = new Model.RevitFlowmeter();
@@ -655,6 +692,77 @@
                                model.Translations.Add(translation);
                            }
                            break;
                        case RevitJsonCatalog.Exchanger:
                            {
                                var exchanger = new Model.RevitExchanger();
                                exchanger.Id = jobject[RevitJsonProp.Id].ToString();
                                exchanger.Code = jobject[RevitJsonProp.Code].ToString();
                                if (string.IsNullOrEmpty(exchanger.Code))
                                {
                                    exchanger.Code = exchanger.Id;
                                }
                                exchanger.Name = jobject[RevitJsonProp.Name].ToString();
                                exchanger.ModelType = jobject[RevitJsonProp.ModelType].ToString();
                                exchanger.Flags = Yw.Untity.FlagsHelper.ToList(jobject[RevitJsonProp.Flags].ToString());
                                exchanger.Description = jobject[RevitJsonProp.Description].ToString();
                                var linkList = JsonHelper.Json2Object<List<RevitJsonLinkerModel>>(jobject[RevitJsonProp.Links].ToString());
                                var startLinker = linkList.GetStartLinker();
                                var endLinker = linkList.GetEndLinker();
                                exchanger.StartCode = startLinker.ConnectId;
                                exchanger.EndCode = endLinker.ConnectId;
                                exchanger.StartPosition = new Model.RevitPosition()
                                {
                                    X = startLinker.Point.X,
                                    Y = startLinker.Point.Y,
                                    Z = startLinker.Point.Z
                                };
                                exchanger.EndPosition = new Model.RevitPosition()
                                {
                                    X = endLinker.Point.X,
                                    Y = endLinker.Point.Y,
                                    Z = endLinker.Point.Z
                                };
                                exchanger.LinkStatus = jobject[RevitJsonProp.LinkStatusPipe].ToString();
                                if (jobject[RevitJsonProp.StartElev].MatchNumeric(out double startElev))
                                {
                                    exchanger.StartElev = startElev;
                                }
                                if (jobject[RevitJsonProp.EndElev].MatchNumeric(out double endElev))
                                {
                                    exchanger.EndElev = endElev;
                                }
                                if (jobject[RevitJsonProp.StartQuality].MatchNumeric(out double startQuality))
                                {
                                    exchanger.StartQuality = startQuality;
                                }
                                if (jobject[RevitJsonProp.EndQuality].MatchNumeric(out double endQuality))
                                {
                                    exchanger.EndQuality = endQuality;
                                }
                                if (jobject[RevitJsonProp.Length].MatchNumeric(out double length))
                                {
                                    exchanger.Length = length;
                                }
                                if (jobject[RevitJsonProp.Diameter].MatchNumeric(out double diameter))
                                {
                                    exchanger.Diameter = diameter;
                                }
                                else if (jobject[RevitJsonProp.InternalDiameter].MatchNumeric(out double internalDiameter))
                                {
                                    exchanger.Diameter = internalDiameter;
                                }
                                if (jobject[RevitJsonProp.MinorLoss].MatchNumeric(out double minorLoss))
                                {
                                    exchanger.MinorLoss = minorLoss;
                                }
                                if (jobject[RevitJsonProp.Roughness].MatchNumeric(out double roughness))
                                {
                                    exchanger.Roughness = roughness;
                                }
                                model.Exchangers.Add(exchanger);
                            }
                            break;
                        case RevitJsonCatalog.Pump:
                            {
                                var pump = new Model.RevitPump();
Service/HStation.Service.Revit.Core/04-service/01-json/model/RevitJsonCatalog.cs
@@ -51,6 +51,11 @@
        public const string Hydrant = "消火栓";
        /// <summary>
        /// æ°´è¡¨
        /// </summary>
        public const string Meter = "水表";
        /// <summary>
        /// æµé‡è®¡
        /// </summary>
        public const string Flowmeter = "流量计";
@@ -76,6 +81,11 @@
        public const string Translation = "过渡件";
        /// <summary>
        /// æ¢çƒ­å™¨
        /// </summary>
        public const string Exchanger = "换热器";
        /// <summary>
        /// æ°´æ³µ
        /// </summary>
        public const string Pump = "æ°´æ³µ";