ba619b2a75beb9349b6dffb92080882354019ac1..2ea53b9fbd3fc318f1c02c1888c22aec5abab8ef
2024-08-17 zhangyuekai
Merge branch 'master' of http://47.103.154.90:83/r/HStation/RevitTool.V1.0
2ea53b 对比 | 目录
2024-08-17 zhangyuekai
fix-bug classfy pumb
a1b8dc 对比 | 目录
已修改5个文件
199 ■■■■■ 文件已修改
HStation.RevitDev/RevitDataExport/Parser/Pump.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HStation.RevitDev/RevitDataExport/Parser/Qita.cs 131 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HStation.RevitDev/RevitDataExport/Utility/ModelFactory.cs 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HStation.RevitDev/RevitDataExport/Utility/WpfBindingUtils.cs 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HStation.RevitDev/RevitToDb/HStation.RevitDev.RevitToDb.csproj 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HStation.RevitDev/RevitDataExport/Parser/Pump.cs
@@ -30,9 +30,9 @@
        {
            get 
            {
                return new List<string>
                return new List<string>
                {
                    "水泵"
                    "水泵|泵","泵"
                };
            } 
        }
HStation.RevitDev/RevitDataExport/Parser/Qita.cs
@@ -2,10 +2,9 @@
using Autodesk.Revit.DB.Plumbing;
using Glodon.Revit.Utility;
using HStation.RevitDev.Model.AttributeClass;
using HStation.RevitDev.RevitDataExport.Common;
using HStation.RevitDev.RevitDataExport.Entity;
using HStation.RevitDev.RevitDataExport.Entity.ElementModels;
using System;
using HStation.RevitDev.RevitDataExport.Utility;
using System.Collections.Generic;
namespace HStation.RevitDev.RevitDataExport.Parser
@@ -14,62 +13,80 @@
    /// qita 
    /// </summary>
    /// 
    //[RevitType(Model.ModelEnum.RevitType.RFT_Others)]
    //public class QitaParser : BaseParser
    //{
    //    public override List<BuiltInCategory> FilterCategories
    //    {
    //        get
    //        {
    //            return new List<BuiltInCategory>
    //            {
    //            };
    //        }
    //    }
    //    public override List<string> FilterRegexes
    //    {
    //        get
    //        {
    //            return new List<string>
    //            {
    //            };
    //        }
    //    }
    [RevitType(Model.ModelEnum.RevitType.RFT_Others)]
    public class QitaParser/* : BaseParser*/
    {
        //public override List<BuiltInCategory> FilterCategories
        //{
        //    get
        //    {
        //        return new List<BuiltInCategory>
        //        {
    //    public override string GetParserName()
    //    {
    //        return "其他";
    //    }
        //        };
        //    }
        //}
        //public override List<string> FilterRegexes
        //{
        //    get
        //    {
        //        return new List<string>
        //        {
    //    public override ElementModel Parse(Element elem)
    //    {
    //        var elemModel = BaseParse(elem);
    //        var result = new OtherModel(elemModel);
    //        return result;
    //    }
        //        };
        //    }
        //}
    //    public override List<Tuple<string, string>> PropertyParse(Element elem)
    //    {
    //        var result = new List<Tuple<string, string>>();
    //        var instance = elem.Document.GetElement(elem.Id);
    //        var fi = instance as FamilyInstance;
    //        if (fi == null) { return result; }
    //        var connectInfos = MEPHelper.GetConnecters(fi);
    //        result.AddRange(CommonPropertyParse(elem));
    //        for (int i = 1; i <= 5; i++)
    //        {
    //            if (connectInfos.Count >= i)
    //            {
    //                result.Add(new Tuple<string, string>($"连接点{i}", connectInfos[i - 1]?.ElementId.ToString()));
    //            }
    //            else
    //            {
    //                result.Add(new Tuple<string, string>($"连接点{i}", string.Empty));
    //            }
    //        }
    //        return result;
    //    }
    //}
        //public override string GetParserName()
        //{
        //    return "其他";
        //}
        public /*override*/ ElementModel Parse(Element elem)
        {
            var elemModel = BaseParse(elem);
            var result = new OtherModel(elemModel);
            return result;
        }
        public OtherModel BaseParse(Element elem)
        {
            var elemName = ParameterOperator.GetElementName(elem);
            var elemId = elem.Id.IntegerValue.ToString();
            var sysName = ParameterOperator.GetElementPipingSystemType(elem)?.Name;
            var box = BoundingBoxHelper.BoundingBoxSerialize(elem.get_BoundingBox(null));
            var refLevel = elem.GetParameterByProName(new List<string> { "参照标高", "标高" })?.AsValueString();
            return new OtherModel(new ElementModel
            {
                名称 = elemName,
                编号 = elemId,
                包围框 = box,
                系统类型 = sysName,
                楼层 = refLevel,
                连接构件 = ElementExtense2.GetLinkedElementIds(elemId)
            });
        }
        //public override List<Tuple<string, string>> PropertyParse(Element elem)
        //{
        //    var result = new List<Tuple<string, string>>();
        //    var instance = elem.Document.GetElement(elem.Id);
        //    var fi = instance as FamilyInstance;
        //    if (fi == null) { return result; }
        //    var connectInfos = MEPHelper.GetConnecters(fi);
        //    result.AddRange(CommonPropertyParse(elem));
        //    for (int i = 1; i <= 5; i++)
        //    {
        //        if (connectInfos.Count >= i)
        //        {
        //            result.Add(new Tuple<string, string>($"连接点{i}", connectInfos[i - 1]?.ElementId.ToString()));
        //        }
        //        else
        //        {
        //            result.Add(new Tuple<string, string>($"连接点{i}", string.Empty));
        //        }
        //    }
        //    return result;
        //}
    }
}
HStation.RevitDev/RevitDataExport/Utility/ModelFactory.cs
@@ -3,6 +3,7 @@
using HStation.RevitDev.Model.ModelEnum;
using HStation.RevitDev.RevitDataExport.Common;
using HStation.RevitDev.RevitDataExport.Entity;
using HStation.RevitDev.RevitDataExport.Entity.ElementModels;
using HStation.RevitDev.RevitDataExport.Parser;
using System;
using System.Collections.Generic;
@@ -44,5 +45,20 @@
            }
            return ret;
        }
        public static List<OtherModel> Convert2Others(List<string> ids)
        {
            var ret = new List<OtherModel>();
            foreach (var id in ids)
            {
                var elem = GlobalResource.CurrentDocument.GetElement(new ElementId(int.Parse(id)));
                if (elem == null) { continue; }
                var parser = new QitaParser();
                OtherModel model = parser.Parse(elem) as OtherModel;
                ret.Add(model);
            }
            return ret;
        }
    }
}
HStation.RevitDev/RevitDataExport/Utility/WpfBindingUtils.cs
@@ -35,70 +35,64 @@
                    {
                        var subModels = ModelFactory.Convert2Sub<PumbModel2>(models);
                        dataGrid.ItemsSource = subModels;
                        HeaderConvertChs<PumbModel2>(dataGrid);
                        //HeaderConvertChs<PumbModel2>(dataGrid);
                        break;
                    }
                case RevitType.RFT_Blocker:
                    {
                        var subModels = ModelFactory.Convert2Sub<BlockerModel>(models);
                        dataGrid.ItemsSource = subModels;
                        HeaderConvertChs<PumbModel2>(dataGrid);
                        //HeaderConvertChs<BlockerModel>(dataGrid);
                        break;
                    }
                case RevitType.RFT_Converter:
                    {
                        var subModels = ModelFactory.Convert2Sub<ConvertorModel>(models);
                        dataGrid.ItemsSource = subModels;
                        HeaderConvertChs<PumbModel2>(dataGrid);
                        //HeaderConvertChs<ConvertorModel>(dataGrid);
                        break;
                    }
                case RevitType.RFT_Elbow:
                    {
                        var subModels = ModelFactory.Convert2Sub<ElbowModel>(models);
                        dataGrid.ItemsSource = subModels;
                        HeaderConvertChs<PumbModel2>(dataGrid);
                        //HeaderConvertChs<ElbowModel>(dataGrid);
                        break;
                    }
                case RevitType.RFT_FourJoint:
                    {
                        var subModels = ModelFactory.Convert2Sub<SiTongModel>(models);
                        dataGrid.ItemsSource = subModels; 
                        HeaderConvertChs<PumbModel2>(dataGrid);
                        //HeaderConvertChs<SiTongModel>(dataGrid);
                        break;
                    }
                case RevitType.RFT_HeatExchanger:
                    {
                        var subModels = ModelFactory.Convert2Sub<HeatExchangerModel>(models);
                        dataGrid.ItemsSource = subModels;
                        HeaderConvertChs<PumbModel2>(dataGrid);
                        //HeaderConvertChs<HeatExchangerModel>(dataGrid);
                        break;
                    }
                case RevitType.RFT_Others:
                    {
                        var subModels = ModelFactory.Convert2Sub<OtherModel>(models);
                        dataGrid.ItemsSource = subModels;
                        HeaderConvertChs<PumbModel2>(dataGrid);
                        break;
                    }
                case RevitType.RFT_Pipe:
                    {
                        var subModels = ModelFactory.Convert2Sub<PipeModel>(models);
                        dataGrid.ItemsSource = subModels;
                        HeaderConvertChs<PumbModel2>(dataGrid);
                        //HeaderConvertChs<PipeModel>(dataGrid);
                        break;
                    }
                case RevitType.RFT_Shower:
                    {
                        var subModels = ModelFactory.Convert2Sub<ShowerModel>(models);
                        dataGrid.ItemsSource = subModels;
                        HeaderConvertChs<PumbModel2>(dataGrid);
                        //HeaderConvertChs<ShowerModel>(dataGrid);
                        break;
                    }
                case RevitType.RFT_ThreeJoint:
                    {
                        var subModels = ModelFactory.Convert2Sub<SanTongModel>(models);
                        dataGrid.ItemsSource = subModels;
                        HeaderConvertChs<PumbModel2>(dataGrid);
                        //HeaderConvertChs<SanTongModel>(dataGrid);
                        break;
                    }
@@ -106,33 +100,44 @@
                    {
                        var subModels = ModelFactory.Convert2Sub<ValveModel>(models);
                        dataGrid.ItemsSource = subModels;
                        HeaderConvertChs<PumbModel2>(dataGrid);
                        //HeaderConvertChs<ValveModel>(dataGrid);
                        break;
                    }
                case RevitType.RFT_WaterBox:
                    {
                        var subModels = ModelFactory.Convert2Sub<WaterBoxModel>(models);
                        dataGrid.ItemsSource = subModels;
                        HeaderConvertChs<PumbModel2>(dataGrid);
                        //HeaderConvertChs<WaterBoxModel>(dataGrid);
                        break;
                    }
                case RevitType.RFT_WaterMeter:
                    {
                        var subModels = ModelFactory.Convert2Sub<WaterMeterModel>(models);
                        dataGrid.ItemsSource = subModels;
                        HeaderConvertChs<PumbModel2>(dataGrid);
                        //HeaderConvertChs<WaterMeterModel>(dataGrid);
                        break;
                    }
                case RevitType.RFT_WaterPool:
                    {
                        var subModels = ModelFactory.Convert2Sub<WaterPoolModel>(models);
                        dataGrid.ItemsSource = subModels;
                        HeaderConvertChs<PumbModel2>(dataGrid);
                        //HeaderConvertChs<WaterPoolModel>(dataGrid);
                        break;
                    }
                case RevitType.RFT_FireHydrant:
                    {
                        var subModels = ModelFactory.Convert2Sub<FireHydrantModel>(models);
                        dataGrid.ItemsSource = subModels;
                        //HeaderConvertChs<FireHydrantModel>(dataGrid);
                        break;
                    }
                case RevitType.RFT_Unknown:
                case RevitType.RFT_Others:
                default:
                    {
                        var subModels = ModelFactory.Convert2Others(models);
                        dataGrid.ItemsSource = subModels;
                        //HeaderConvertChs<OtherModel>(dataGrid);
                        break;
                    }
            }
HStation.RevitDev/RevitToDb/HStation.RevitDev.RevitToDb.csproj
@@ -61,8 +61,5 @@
      <Name>HStation.RevitDev.RevitDataExport</Name>
    </ProjectReference>
  </ItemGroup>
  <ItemGroup>
    <None Include="app.config" />
  </ItemGroup>
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>