| | |
| | | msg = "Revit json 字符串为空"; |
| | | return default; |
| | | } |
| | | try |
| | | { |
| | | //try |
| | | //{ |
| | | var model = new Model.RevitModel(); |
| | | |
| | | //解析结构json |
| | |
| | | } |
| | | } |
| | | break; |
| | | case RevitJsonCatalog.Cooling: |
| | | { |
| | | var cooling = ParseCooling(jobject); |
| | | if (cooling != null) |
| | | { |
| | | model.Coolings.Add(cooling); |
| | | } |
| | | } |
| | | break; |
| | | case RevitJsonCatalog.Pipe: |
| | | { |
| | | var pipe = ParsePipe(jobject); |
| | |
| | | } |
| | | |
| | | return model; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | msg = ex.Message; |
| | | return default; |
| | | } |
| | | //} |
| | | //catch (Exception ex) |
| | | //{ |
| | | // msg = ex.Message; |
| | | // return default; |
| | | //} |
| | | |
| | | } |
| | | |
| | |
| | | else |
| | | { |
| | | reservoir.UpdatePropStatus(nameof(reservoir.Flags), ePropStatus.Error, "缺少[标签信息]"); |
| | | } |
| | | if (reservoir.Flags == null) |
| | | { |
| | | reservoir.Flags = new List<string>(); |
| | | } |
| | | |
| | | #endregion |
| | |
| | | else |
| | | { |
| | | tank.UpdatePropStatus(nameof(tank.Flags), ePropStatus.Error, "缺少[标签信息]"); |
| | | } |
| | | |
| | | if (tank.Flags == null) |
| | | { |
| | | tank.Flags = new List<string>(); |
| | | } |
| | | |
| | | #endregion |
| | |
| | | waterbox.UpdatePropStatus(nameof(waterbox.Flags), ePropStatus.Error, "缺少[标签信息]"); |
| | | } |
| | | |
| | | if (waterbox.Flags == null) |
| | | { |
| | | waterbox.Flags = new List<string>(); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region Description |
| | |
| | | junction.UpdatePropStatus(nameof(junction.Flags), ePropStatus.Error, "缺少[标签信息]"); |
| | | } |
| | | |
| | | if (junction.Flags == null) |
| | | { |
| | | junction.Flags = new List<string>(); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region Description |
| | |
| | | |
| | | #region Elev |
| | | |
| | | if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev)) |
| | | if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev)) |
| | | { |
| | | junction.Elev = elev; |
| | | } |
| | |
| | | if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation)) |
| | | { |
| | | junction.Elev = elevOfElevation / 1000f; |
| | | var jre = jobject[RevitJsonProp.Elev]; |
| | | if (jre != null) |
| | | { |
| | | if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade)) |
| | | { |
| | | junction.Elev += facade / 1000f; |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | junction.UpdatePropStatus(nameof(junction.Elev), ePropStatus.Abnormal, "[标高中的高程]缺少或者格式错误"); |
| | | } |
| | | |
| | | } |
| | | |
| | | if (junction.Elev <= 0) |
| | |
| | | blunthead.UpdatePropStatus(nameof(blunthead.Flags), ePropStatus.Error, "缺少[标签信息]"); |
| | | } |
| | | |
| | | if (blunthead.Flags == null) |
| | | { |
| | | blunthead.Flags = new List<string>(); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region Description |
| | |
| | | |
| | | #region Elev |
| | | |
| | | if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev)) |
| | | if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev)) |
| | | { |
| | | blunthead.Elev = elev; |
| | | } |
| | |
| | | if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation)) |
| | | { |
| | | blunthead.Elev = elevOfElevation / 1000f; |
| | | var jre = jobject[RevitJsonProp.Elev]; |
| | | if (jre != null) |
| | | { |
| | | if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade)) |
| | | { |
| | | blunthead.Elev += facade / 1000f; |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | |
| | | { |
| | | blunthead.Caliber = caliber; |
| | | } |
| | | else |
| | | if (blunthead.Caliber <= 0) |
| | | { |
| | | if (jobject[RevitJsonProp.DN].MatchNumeric(out caliber)) |
| | | { |
| | | blunthead.Caliber = caliber; |
| | | } |
| | | } |
| | | if (blunthead.Caliber <= 0) |
| | | { |
| | | blunthead.UpdatePropStatus(nameof(blunthead.Caliber), ePropStatus.Abnormal, "[口径信息]缺少或者数据格式错误"); |
| | | } |
| | |
| | | elbow.UpdatePropStatus(nameof(elbow.Flags), ePropStatus.Error, "缺少[标签信息]"); |
| | | } |
| | | |
| | | if (elbow.Flags == null) |
| | | { |
| | | elbow.Flags = new List<string>(); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region Description |
| | |
| | | |
| | | #region Elev |
| | | |
| | | if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev)) |
| | | if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev)) |
| | | { |
| | | elbow.Elev = elev; |
| | | } |
| | |
| | | if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation)) |
| | | { |
| | | elbow.Elev = elevOfElevation / 1000f; |
| | | var jre = jobject[RevitJsonProp.Elev]; |
| | | if (jre != null) |
| | | { |
| | | if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade)) |
| | | { |
| | | elbow.Elev += facade / 1000f; |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | |
| | | { |
| | | elbow.Caliber = caliber; |
| | | } |
| | | else |
| | | if (elbow.Caliber <= 0) |
| | | { |
| | | if (jobject[RevitJsonProp.DN].MatchNumeric(out caliber)) |
| | | { |
| | | elbow.Caliber = caliber; |
| | | } |
| | | } |
| | | if (elbow.Caliber <= 0) |
| | | { |
| | | elbow.UpdatePropStatus(nameof(elbow.Caliber), ePropStatus.Abnormal, "[口径信息]缺少或者数据格式错误"); |
| | | } |
| | |
| | | |
| | | if (jobject[RevitJsonProp.BendingAngle].MatchNumeric(out double bendingAngle)) |
| | | { |
| | | elbow.BendingAngle = bendingAngle; |
| | | elbow.BendingAngle = (int)bendingAngle; |
| | | } |
| | | else |
| | | { |
| | |
| | | threelink.UpdatePropStatus(nameof(threelink.Flags), ePropStatus.Error, "缺少[标签信息]"); |
| | | } |
| | | |
| | | if (threelink.Flags == null) |
| | | { |
| | | threelink.Flags = new List<string>(); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region Description |
| | |
| | | |
| | | #region Elev |
| | | |
| | | if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev)) |
| | | if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev)) |
| | | { |
| | | threelink.Elev = elev; |
| | | } |
| | |
| | | if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation)) |
| | | { |
| | | threelink.Elev = elevOfElevation / 1000f; |
| | | var jre = jobject[RevitJsonProp.Elev]; |
| | | if (jre != null) |
| | | { |
| | | if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade)) |
| | | { |
| | | threelink.Elev += facade / 1000f; |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | |
| | | { |
| | | threelink.Caliber = caliber; |
| | | } |
| | | else |
| | | if (threelink.Caliber <= 0) |
| | | { |
| | | if (jobject[RevitJsonProp.DN].MatchNumeric(out caliber)) |
| | | { |
| | | threelink.Caliber = caliber; |
| | | } |
| | | } |
| | | if (threelink.Caliber <= 0) |
| | | { |
| | | threelink.UpdatePropStatus(nameof(threelink.Caliber), ePropStatus.Abnormal, "[口径信息]缺少或者数据格式错误"); |
| | | } |
| | |
| | | fourlink.UpdatePropStatus(nameof(fourlink.Flags), ePropStatus.Error, "缺少[标签信息]"); |
| | | } |
| | | |
| | | if (fourlink.Flags == null) |
| | | { |
| | | fourlink.Flags = new List<string>(); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region Description |
| | |
| | | |
| | | #region Elev |
| | | |
| | | if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev)) |
| | | if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev)) |
| | | { |
| | | fourlink.Elev = elev; |
| | | } |
| | |
| | | if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation)) |
| | | { |
| | | fourlink.Elev = elevOfElevation / 1000f; |
| | | var jre = jobject[RevitJsonProp.Elev]; |
| | | if (jre != null) |
| | | { |
| | | if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade)) |
| | | { |
| | | fourlink.Elev += facade / 1000f; |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | |
| | | { |
| | | fourlink.Caliber = caliber; |
| | | } |
| | | else |
| | | if (fourlink.Caliber <= 0) |
| | | { |
| | | if (jobject[RevitJsonProp.DN].MatchNumeric(out caliber)) |
| | | { |
| | | fourlink.Caliber = caliber; |
| | | } |
| | | } |
| | | if (fourlink.Caliber <= 0) |
| | | { |
| | | fourlink.UpdatePropStatus(nameof(fourlink.Caliber), ePropStatus.Abnormal, "[口径信息]缺少或者数据格式错误"); |
| | | } |
| | |
| | | nozzle.UpdatePropStatus(nameof(nozzle.Flags), ePropStatus.Error, "缺少[标签信息]"); |
| | | } |
| | | |
| | | if (nozzle.Flags == null) |
| | | { |
| | | nozzle.Flags = new List<string>(); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region Description |
| | |
| | | |
| | | #region Elev |
| | | |
| | | if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev)) |
| | | if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev)) |
| | | { |
| | | nozzle.Elev = elev; |
| | | } |
| | |
| | | if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation)) |
| | | { |
| | | nozzle.Elev = elevOfElevation / 1000f; |
| | | var jre = jobject[RevitJsonProp.Elev]; |
| | | if (jre != null) |
| | | { |
| | | if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade)) |
| | | { |
| | | nozzle.Elev += facade / 1000f; |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | |
| | | hydrant.UpdatePropStatus(nameof(hydrant.Flags), ePropStatus.Error, "缺少[标签信息]"); |
| | | } |
| | | |
| | | if (hydrant.Flags == null) |
| | | { |
| | | hydrant.Flags = new List<string>(); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region Description |
| | |
| | | |
| | | #region Elev |
| | | |
| | | if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev)) |
| | | if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev)) |
| | | { |
| | | hydrant.Elev = elev; |
| | | } |
| | |
| | | if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation)) |
| | | { |
| | | hydrant.Elev = elevOfElevation / 1000f; |
| | | var jre = jobject[RevitJsonProp.Elev]; |
| | | if (jre != null) |
| | | { |
| | | if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade)) |
| | | { |
| | | hydrant.Elev += facade / 1000f; |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | |
| | | return hydrant; |
| | | } |
| | | |
| | | //解析冷却塔 |
| | | private static HStation.Model.RevitCooling ParseCooling(JToken jobject) |
| | | { |
| | | if (jobject == null) |
| | | { |
| | | return default; |
| | | } |
| | | |
| | | var cooling = new Model.RevitCooling(); |
| | | cooling.Catalog = RevitJsonCatalog.Cooling; |
| | | |
| | | #region Id |
| | | |
| | | if (jobject.ParseString(RevitJsonProp.Id, out string id)) |
| | | { |
| | | cooling.Id = id; |
| | | } |
| | | else |
| | | { |
| | | cooling.UpdatePropStatus(nameof(cooling.Id), ePropStatus.Error, "缺少[构件编码]"); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region Name |
| | | |
| | | if (jobject.ParseString(RevitJsonProp.Name, out string name)) |
| | | { |
| | | cooling.Name = name; |
| | | cooling.UpdatePropStatus(nameof(cooling.Name), ePropStatus.Lack, "[构件名称]缺省"); |
| | | } |
| | | else |
| | | { |
| | | cooling.UpdatePropStatus(nameof(cooling.Name), ePropStatus.Error, "缺少 [构件名称]"); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region ModelType |
| | | |
| | | if (jobject.ParseString(RevitJsonProp.ModelType, out string modelType)) |
| | | { |
| | | cooling.ModelType = modelType; |
| | | if (string.IsNullOrEmpty(cooling.ModelType)) |
| | | { |
| | | cooling.UpdatePropStatus(nameof(cooling.ModelType), ePropStatus.Lack, "[型号信息]缺省"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | cooling.UpdatePropStatus(nameof(cooling.ModelType), ePropStatus.Error, "缺少[型号信息]"); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region Flags |
| | | |
| | | if (jobject.ParseString(RevitJsonProp.Flags, out string flags)) |
| | | { |
| | | cooling.Flags = Yw.Untity.FlagsHelper.ToList(flags); |
| | | if (!string.IsNullOrEmpty(flags)) |
| | | { |
| | | if (cooling.Flags == null || cooling.Flags.Count < 1) |
| | | { |
| | | cooling.UpdatePropStatus(nameof(cooling.Flags), ePropStatus.Abnormal, "[标签信息]格式错误"); |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | cooling.UpdatePropStatus(nameof(cooling.Flags), ePropStatus.Error, "缺少[标签信息]"); |
| | | } |
| | | |
| | | if (cooling.Flags == null) |
| | | { |
| | | cooling.Flags = new List<string>(); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region Description |
| | | |
| | | if (jobject.ParseString(RevitJsonProp.Description, out string description)) |
| | | { |
| | | cooling.Description = description; |
| | | } |
| | | else |
| | | { |
| | | cooling.UpdatePropStatus(nameof(cooling.Description), ePropStatus.Error, "缺少[说明信息]"); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region ConnectList |
| | | |
| | | if (jobject.ParseString(RevitJsonProp.Connects, out string connectString)) |
| | | { |
| | | var connectList = JsonHelper.Json2Object<List<RevitJsonConnectModel>>(connectString); |
| | | cooling.ConnectList = connectList?.Select(x => new Model.RevitConnect() |
| | | { |
| | | Id = x.ConnectId, |
| | | Direction = x.Dirction, |
| | | Position = new Model.RevitPosition() |
| | | { |
| | | X = x.Point.X / 1000f, |
| | | Y = x.Point.Y / 1000f, |
| | | Z = x.Point.Z / 1000f |
| | | } |
| | | }).ToList(); |
| | | if (cooling.ConnectList == null || cooling.ConnectList.Count < 1) |
| | | { |
| | | cooling.UpdatePropStatus(nameof(cooling.ConnectList), ePropStatus.Error, "[连接列表]解析失败"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | cooling.UpdatePropStatus(nameof(cooling.ConnectList), ePropStatus.Error, "缺少[连接列表]"); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region Position |
| | | |
| | | cooling.Position = cooling.ConnectList?.GetCenterPosition(); |
| | | if (cooling.Position == null) |
| | | { |
| | | cooling.UpdatePropStatus(nameof(cooling.Position), ePropStatus.Lack, "[位置信息]缺省,可能是受[连接列表]解析失败影响"); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region Elev |
| | | |
| | | if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev)) |
| | | { |
| | | cooling.Elev = elev; |
| | | } |
| | | else |
| | | { |
| | | cooling.UpdatePropStatus(nameof(cooling.Elev), ePropStatus.Abnormal, "[标高信息]缺少或者格式错误"); |
| | | } |
| | | |
| | | if (cooling.Elev <= 0) |
| | | { |
| | | if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation)) |
| | | { |
| | | cooling.Elev = elevOfElevation / 1000f; |
| | | var jre = jobject[RevitJsonProp.Elev]; |
| | | if (jre != null) |
| | | { |
| | | if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade)) |
| | | { |
| | | cooling.Elev += facade / 1000f; |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | cooling.UpdatePropStatus(nameof(cooling.Elev), ePropStatus.Abnormal, "[标高中的高程]缺少或者格式错误"); |
| | | } |
| | | } |
| | | |
| | | if (cooling.Elev <= 0) |
| | | { |
| | | //通过z轴自动计算 |
| | | if (cooling.Position == null) |
| | | { |
| | | cooling.UpdatePropStatus(nameof(cooling.Elev), ePropStatus.Lack, "[标高信息]缺省,受[位置]影响,无法通过Z轴自动计算"); |
| | | } |
| | | else |
| | | { |
| | | cooling.Elev = cooling.Position.Z; |
| | | cooling.UpdatePropStatus(nameof(cooling.Elev), ePropStatus.Lack, "[标高信息]缺省,通过Z轴自动计算"); |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region Material |
| | | |
| | | if (jobject.ParseString(RevitJsonProp.Material, out string material)) |
| | | { |
| | | cooling.Material = material; |
| | | if (string.IsNullOrEmpty(cooling.Material)) |
| | | { |
| | | cooling.UpdatePropStatus(nameof(cooling.Material), ePropStatus.Lack, "[材质信息]缺省"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | cooling.UpdatePropStatus(nameof(cooling.Material), ePropStatus.Abnormal, "缺少[材质信息]"); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region Caliber |
| | | |
| | | if (jobject[RevitJsonProp.Caliber].MatchNumeric(out double caliber)) |
| | | { |
| | | cooling.Caliber = caliber; |
| | | } |
| | | else |
| | | { |
| | | cooling.UpdatePropStatus(nameof(cooling.Caliber), ePropStatus.Abnormal, "[口径信息]缺少或者数据格式错误"); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region Demand |
| | | |
| | | if (jobject[RevitJsonProp.Demand].MatchNumeric(out double demand)) |
| | | { |
| | | cooling.Demand = demand; |
| | | } |
| | | else |
| | | { |
| | | cooling.UpdatePropStatus(nameof(cooling.Demand), ePropStatus.Abnormal, "[需水量]缺少或者数据格式错误"); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region DemandPattern |
| | | |
| | | if (jobject.ParseString(RevitJsonProp.DemandPattern, out string demandPattern)) |
| | | { |
| | | cooling.DemandPattern = demandPattern; |
| | | if (string.IsNullOrEmpty(cooling.DemandPattern)) |
| | | { |
| | | cooling.UpdatePropStatus(nameof(cooling.DemandPattern), ePropStatus.Lack, "[需水模式]缺省"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | cooling.UpdatePropStatus(nameof(cooling.DemandPattern), ePropStatus.Abnormal, "缺少[需水模式]"); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region MinorLoss |
| | | |
| | | if (jobject[RevitJsonProp.MinorLoss].MatchNumeric(out double minorLoss)) |
| | | { |
| | | cooling.MinorLoss = minorLoss; |
| | | } |
| | | else |
| | | { |
| | | cooling.UpdatePropStatus(nameof(cooling.MinorLoss), ePropStatus.Abnormal, "[局阻系数]缺少或者数据格式错误"); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region Coefficient |
| | | |
| | | if (jobject[RevitJsonProp.CoefficientP].MatchNumeric(out double coeffientp)) |
| | | { |
| | | cooling.Coefficient = coeffientp; |
| | | if (cooling.Coefficient <= 0) |
| | | { |
| | | cooling.UpdatePropStatus(nameof(cooling.Coefficient), ePropStatus.Lack, "[喷射系数]缺省"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | cooling.UpdatePropStatus(nameof(cooling.Coefficient), ePropStatus.Abnormal, "[喷射系数]缺少或者格式错误"); |
| | | if (jobject[RevitJsonProp.CoefficientF].MatchNumeric(out double coeffientf)) |
| | | { |
| | | cooling.Coefficient = coeffientf; |
| | | if (cooling.Coefficient <= 0) |
| | | { |
| | | cooling.UpdatePropStatus(nameof(cooling.Coefficient), ePropStatus.Lack, "[流量系数]缺省"); |
| | | } |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region LowerLimit |
| | | |
| | | if (jobject[RevitJsonProp.LowerLimit].MatchNumeric(out double lowerLimit)) |
| | | { |
| | | cooling.LowerLimit = lowerLimit; |
| | | if (cooling.LowerLimit <= 0) |
| | | { |
| | | cooling.UpdatePropStatus(nameof(cooling.LowerLimit), ePropStatus.Lack, "[最小压力]缺省"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | cooling.UpdatePropStatus(nameof(cooling.LowerLimit), ePropStatus.Abnormal, "[最小压力]缺少或者格式错误"); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | return cooling; |
| | | } |
| | | |
| | | //解析水表 |
| | | private static HStation.Model.RevitMeter ParseMeter(JToken jobject) |
| | | { |
| | |
| | | meter.UpdatePropStatus(nameof(meter.Flags), ePropStatus.Error, "缺少[标签信息]"); |
| | | } |
| | | |
| | | if (meter.Flags == null) |
| | | { |
| | | meter.Flags = new List<string>(); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region Description |
| | |
| | | |
| | | #region Elev |
| | | |
| | | if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev)) |
| | | if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev)) |
| | | { |
| | | meter.Elev = elev; |
| | | } |
| | |
| | | if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation)) |
| | | { |
| | | meter.Elev = elevOfElevation / 1000f; |
| | | var jre = jobject[RevitJsonProp.Elev]; |
| | | if (jre != null) |
| | | { |
| | | if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade)) |
| | | { |
| | | meter.Elev += facade / 1000f; |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | |
| | | flowmeter.UpdatePropStatus(nameof(flowmeter.Flags), ePropStatus.Error, "缺少[标签信息]"); |
| | | } |
| | | |
| | | if (flowmeter.Flags == null) |
| | | { |
| | | flowmeter.Flags = new List<string>(); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region Description |
| | |
| | | |
| | | #region Elev |
| | | |
| | | if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev)) |
| | | if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev)) |
| | | { |
| | | flowmeter.Elev = elev; |
| | | } |
| | |
| | | if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation)) |
| | | { |
| | | flowmeter.Elev = elevOfElevation / 1000f; |
| | | var jre = jobject[RevitJsonProp.Elev]; |
| | | if (jre != null) |
| | | { |
| | | if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade)) |
| | | { |
| | | flowmeter.Elev += facade / 1000f; |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | |
| | | pressmeter.UpdatePropStatus(nameof(pressmeter.Flags), ePropStatus.Error, "缺少[标签信息]"); |
| | | } |
| | | |
| | | if (pressmeter.Flags == null) |
| | | { |
| | | pressmeter.Flags = new List<string>(); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region Description |
| | |
| | | |
| | | #region Elev |
| | | |
| | | if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev)) |
| | | if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev)) |
| | | { |
| | | pressmeter.Elev = elev; |
| | | } |
| | |
| | | if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation)) |
| | | { |
| | | pressmeter.Elev = elevOfElevation / 1000f; |
| | | var jre = jobject[RevitJsonProp.Elev]; |
| | | if (jre != null) |
| | | { |
| | | if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade)) |
| | | { |
| | | pressmeter.Elev += facade / 1000f; |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | |
| | | if (jobject.ParseString(RevitJsonProp.Name, out string name)) |
| | | { |
| | | pipe.Name = name; |
| | | pipe.UpdatePropStatus(nameof(pipe.Name), ePropStatus.Lack, "[构件名称]缺省"); |
| | | if (string.IsNullOrEmpty(pipe.Name)) |
| | | { |
| | | pipe.UpdatePropStatus(nameof(pipe.Name), ePropStatus.Lack, "[构件名称]缺省"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | |
| | | |
| | | if (jobject.ParseString(RevitJsonProp.Flags, out string flags)) |
| | | { |
| | | pipe.Flags = Yw.Untity.FlagsHelper.ToList(flags); |
| | | pipe.Flags = RevitFlagsHelper.ToList(flags); |
| | | if (!string.IsNullOrEmpty(flags)) |
| | | { |
| | | if (pipe.Flags == null || pipe.Flags.Count < 1) |
| | |
| | | else |
| | | { |
| | | pipe.UpdatePropStatus(nameof(pipe.Flags), ePropStatus.Error, "缺少[标签信息]"); |
| | | } |
| | | |
| | | if (pipe.Flags == null) |
| | | { |
| | | pipe.Flags = new List<string>(); |
| | | } |
| | | |
| | | #endregion |
| | |
| | | |
| | | #region Diameter |
| | | |
| | | if (jobject[RevitJsonProp.Diameter].MatchNumeric(out double diameter)) |
| | | //直径信息 |
| | | if (jobject[RevitJsonProp.DiameterInfo].MatchNumeric(out double diameter)) |
| | | { |
| | | pipe.Diameter = diameter; |
| | | } |
| | |
| | | pipe.UpdatePropStatus(nameof(pipe.Diameter), ePropStatus.Abnormal, "[直径信息]缺少或者格式错误"); |
| | | } |
| | | |
| | | //直径 |
| | | if (pipe.Diameter < 1) |
| | | { |
| | | if (jobject[RevitJsonProp.InternalDiameter].MatchNumeric(out double internalDiameter)) |
| | | if (jobject[RevitJsonProp.Diameter].MatchNumeric(out diameter)) |
| | | { |
| | | pipe.Diameter = internalDiameter; |
| | | pipe.Diameter = diameter; |
| | | pipe.UpdatePropStatus(nameof(pipe.Diameter), ePropStatus.Lack, "[直径信息]通过[直径]进行修复]"); |
| | | } |
| | | else |
| | | { |
| | | pipe.UpdatePropStatus(nameof(pipe.Diameter), ePropStatus.Abnormal, "[直径信息]无法通过[直径]进行修复]"); |
| | | } |
| | | } |
| | | |
| | | //内径 |
| | | if (pipe.Diameter < 1) |
| | | { |
| | | if (jobject[RevitJsonProp.InternalDiameter].MatchNumeric(out diameter)) |
| | | { |
| | | pipe.Diameter = diameter; |
| | | pipe.UpdatePropStatus(nameof(pipe.Diameter), ePropStatus.Lack, "[直径信息]通过[内径]进行修复]"); |
| | | } |
| | | else |
| | |
| | | } |
| | | } |
| | | |
| | | //公称直径 |
| | | if (pipe.Diameter < 1) |
| | | { |
| | | if (jobject[RevitJsonProp.DN].MatchNumeric(out double dn)) |
| | |
| | | |
| | | if (pipe.Diameter < 1) |
| | | { |
| | | pipe.Diameter = 500; |
| | | pipe.UpdatePropStatus(nameof(pipe.Diameter), ePropStatus.Lack, "[直径信息][内径]解析错误,使用默认值(500mm)修正]"); |
| | | pipe.UpdatePropStatus(nameof(pipe.Diameter), ePropStatus.Error, "[直径信息]解析错误,无法通过【直径】【内径】【公称直径】修复"); |
| | | } |
| | | |
| | | #endregion |
| | |
| | | translation.UpdatePropStatus(nameof(translation.Flags), ePropStatus.Error, "缺少[标签信息]"); |
| | | } |
| | | |
| | | if (translation.Flags == null) |
| | | { |
| | | translation.Flags = new List<string>(); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region Description |
| | |
| | | |
| | | #region Elev |
| | | |
| | | if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev)) |
| | | if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev)) |
| | | { |
| | | translation.Elev = elev; |
| | | } |
| | |
| | | if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation)) |
| | | { |
| | | translation.Elev = elevOfElevation / 1000f; |
| | | var jre = jobject[RevitJsonProp.Elev]; |
| | | if (jre != null) |
| | | { |
| | | if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade)) |
| | | { |
| | | translation.Elev += facade / 1000f; |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | |
| | | |
| | | #region Diameter |
| | | |
| | | if (jobject[RevitJsonProp.Diameter].MatchNumeric(out double diameter)) |
| | | if (jobject[RevitJsonProp.DiameterInfo].MatchNumeric(out double diameter)) |
| | | { |
| | | translation.Diameter = diameter; |
| | | } |
| | |
| | | { |
| | | translation.Diameter = 500; |
| | | translation.UpdatePropStatus(nameof(translation.Diameter), ePropStatus.Lack, "[直径信息][内径]解析错误,使用默认值(500mm)修正]"); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region StartDiameter |
| | | |
| | | if (jobject[RevitJsonProp.MaxSize].MatchNumeric(out double maxSize)) |
| | | { |
| | | translation.StartDiameter = maxSize; |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region EndDiameter |
| | | |
| | | if (jobject[RevitJsonProp.MinSize].MatchNumeric(out double minSize)) |
| | | { |
| | | translation.EndDiameter = minSize; |
| | | } |
| | | |
| | | #endregion |
| | |
| | | pump.UpdatePropStatus(nameof(pump.Flags), ePropStatus.Error, "缺少[标签信息]"); |
| | | } |
| | | |
| | | if (pump.Flags == null) |
| | | { |
| | | pump.Flags = new List<string>(); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region Description |
| | |
| | | |
| | | #region Elev |
| | | |
| | | if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev)) |
| | | if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev)) |
| | | { |
| | | pump.Elev = elev; |
| | | } |
| | |
| | | if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation)) |
| | | { |
| | | pump.Elev = elevOfElevation / 1000f; |
| | | var jre = jobject[RevitJsonProp.Elev]; |
| | | if (jre != null) |
| | | { |
| | | if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade)) |
| | | { |
| | | pump.Elev += facade / 1000f; |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | |
| | | valve.UpdatePropStatus(nameof(valve.Flags), ePropStatus.Error, "缺少[标签信息]"); |
| | | } |
| | | |
| | | if (valve.Flags == null) |
| | | { |
| | | valve.Flags = new List<string>(); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region Description |
| | |
| | | |
| | | #region Elev |
| | | |
| | | if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev)) |
| | | if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev)) |
| | | { |
| | | valve.Elev = elev; |
| | | } |
| | |
| | | if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation)) |
| | | { |
| | | valve.Elev = elevOfElevation / 1000f; |
| | | var jre = jobject[RevitJsonProp.Elev]; |
| | | if (jre != null) |
| | | { |
| | | if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade)) |
| | | { |
| | | valve.Elev += facade / 1000f; |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | |
| | | |
| | | #region Diameter |
| | | |
| | | if (jobject[RevitJsonProp.Diameter].MatchNumeric(out double diameter)) |
| | | if (jobject[RevitJsonProp.DiameterInfo].MatchNumeric(out double diameter)) |
| | | { |
| | | valve.Diameter = diameter; |
| | | } |
| | |
| | | |
| | | if (valve.Diameter < 1) |
| | | { |
| | | if (jobject[RevitJsonProp.InternalDiameter].MatchNumeric(out double internalDiameter)) |
| | | if (jobject[RevitJsonProp.InternalDiameter].MatchNumeric(out diameter)) |
| | | { |
| | | valve.Diameter = internalDiameter; |
| | | valve.Diameter = diameter; |
| | | valve.UpdatePropStatus(nameof(valve.Diameter), ePropStatus.Lack, "[直径信息]通过[内径]进行修复]"); |
| | | } |
| | | else |
| | |
| | | |
| | | if (valve.Diameter < 1) |
| | | { |
| | | if (jobject[RevitJsonProp.DN].MatchNumeric(out double dn)) |
| | | if (jobject[RevitJsonProp.DN].MatchNumeric(out diameter)) |
| | | { |
| | | valve.Diameter = dn; |
| | | valve.Diameter = diameter; |
| | | valve.UpdatePropStatus(nameof(valve.Diameter), ePropStatus.Lack, "[直径信息]通过[公称直径]进行修复]"); |
| | | } |
| | | else |
| | |
| | | |
| | | if (valve.Diameter < 1) |
| | | { |
| | | valve.Diameter = 500; |
| | | valve.UpdatePropStatus(nameof(valve.Diameter), ePropStatus.Lack, "[直径信息][内径]解析错误,使用默认值(500mm)修正]"); |
| | | if (jobject[RevitJsonProp.MaxSize].MatchNumeric(out diameter)) |
| | | { |
| | | valve.Diameter = diameter; |
| | | valve.UpdatePropStatus(nameof(valve.Diameter), ePropStatus.Lack, "[直径信息]通过[最大尺寸]进行修复]"); |
| | | } |
| | | else |
| | | { |
| | | valve.UpdatePropStatus(nameof(valve.Diameter), ePropStatus.Abnormal, "[直径信息]无法通过[最大尺寸]进行修复]"); |
| | | } |
| | | } |
| | | |
| | | if (valve.Diameter < 1) |
| | | { |
| | | if (jobject[RevitJsonProp.MinSize].MatchNumeric(out diameter)) |
| | | { |
| | | valve.Diameter = diameter; |
| | | valve.UpdatePropStatus(nameof(valve.Diameter), ePropStatus.Lack, "[直径信息]通过[最小尺寸]进行修复]"); |
| | | } |
| | | else |
| | | { |
| | | valve.UpdatePropStatus(nameof(valve.Diameter), ePropStatus.Abnormal, "[直径信息]无法通过[最小尺寸]进行修复]"); |
| | | } |
| | | } |
| | | |
| | | if (valve.Diameter < 1) |
| | | { |
| | | valve.UpdatePropStatus(nameof(valve.Diameter), ePropStatus.Lack, "[直径信息]解析错误,无法通过[内径][公称直径][最大尺寸][最小尺寸]修复"); |
| | | } |
| | | |
| | | #endregion |
| | |
| | | else |
| | | { |
| | | valve.OpeningDegree = 100; |
| | | valve.UpdatePropStatus(nameof(valve.MinorLoss), ePropStatus.Abnormal, "[阀门开度]缺少或者数据格式错误,使用默认值(100)进行修正"); |
| | | valve.UpdatePropStatus(nameof(valve.OpeningDegree), ePropStatus.Abnormal, "[阀门开度]缺少或者数据格式错误,使用默认值(100)进行修正"); |
| | | } |
| | | |
| | | #endregion |
| | |
| | | else |
| | | { |
| | | exchanger.UpdatePropStatus(nameof(exchanger.Flags), ePropStatus.Error, "缺少[标签信息]"); |
| | | } |
| | | |
| | | if (exchanger.Flags == null) |
| | | { |
| | | exchanger.Flags = new List<string>(); |
| | | } |
| | | |
| | | #endregion |
| | |
| | | |
| | | #region Elev |
| | | |
| | | if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev)) |
| | | if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev)) |
| | | { |
| | | exchanger.Elev = elev; |
| | | } |
| | |
| | | if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation)) |
| | | { |
| | | exchanger.Elev = elevOfElevation / 1000f; |
| | | var jre = jobject[RevitJsonProp.Elev]; |
| | | |
| | | if (!jre.HasValues) |
| | | { |
| | | |
| | | } |
| | | if (jre != null) |
| | | { |
| | | if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade)) |
| | | { |
| | | exchanger.Elev += facade / 1000f; |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | |
| | | |
| | | #region Diameter |
| | | |
| | | if (jobject[RevitJsonProp.Diameter].MatchNumeric(out double diameter)) |
| | | if (jobject[RevitJsonProp.DiameterInfo].MatchNumeric(out double diameter)) |
| | | { |
| | | exchanger.Diameter = diameter; |
| | | } |
| | |
| | | compressor.UpdatePropStatus(nameof(compressor.Flags), ePropStatus.Error, "缺少[标签信息]"); |
| | | } |
| | | |
| | | if (compressor.Flags == null) |
| | | { |
| | | compressor.Flags = new List<string>(); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region Description |
| | |
| | | |
| | | #region Elev |
| | | |
| | | if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev)) |
| | | if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev)) |
| | | { |
| | | compressor.Elev = elev; |
| | | } |
| | |
| | | if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation)) |
| | | { |
| | | compressor.Elev = elevOfElevation / 1000f; |
| | | var jre = jobject[RevitJsonProp.Elev]; |
| | | if (jre != null) |
| | | { |
| | | if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade)) |
| | | { |
| | | compressor.Elev += facade / 1000f; |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | |
| | | |
| | | #region Diameter |
| | | |
| | | if (jobject[RevitJsonProp.Diameter].MatchNumeric(out double diameter)) |
| | | if (jobject[RevitJsonProp.DiameterInfo].MatchNumeric(out double diameter)) |
| | | { |
| | | compressor.Diameter = diameter; |
| | | } |