qin
2024-09-28 e358beb08f5be49703009b64f058ecfbcfeefbd9
HStation.RevitDev/RevitDataExport/Forms/Form_FamilyManager.cs
@@ -47,9 +47,47 @@
                var revitType = (RevitType)value;
                if (revitType.IsRequired())
                {
                    TreeNode node = new TreeNode(revitType.GetDescription());
                    node.Tag = revitType;
                    this.treeView_categorys.Nodes.Add(node);
                    switch (revitType)
                    {
                        case RevitType.RFT_FireHydrant:
                            {
                                if (GlobalResource.ConfigSettingModel.SystemType == ConfigHelper.SystemType.All || GlobalResource.ConfigSettingModel.SystemType == ConfigHelper.SystemType.Fire)
                                {
                                    TreeNode node = new TreeNode(revitType.GetDescription());
                                    node.Tag = revitType;
                                    this.treeView_categorys.Nodes.Add(node);
                                }
                                break;
                            }
                        case RevitType.RFT_HeatExchanger:
                            {
                                if (GlobalResource.ConfigSettingModel.SystemType == ConfigHelper.SystemType.All || GlobalResource.ConfigSettingModel.SystemType == ConfigHelper.SystemType.CirculatingWater)
                                {
                                    TreeNode node = new TreeNode(revitType.GetDescription());
                                    node.Tag = revitType;
                                    this.treeView_categorys.Nodes.Add(node);
                                }
                                break;
                            }
                        case RevitType.RFT_Shower:
                            {
                                if (GlobalResource.ConfigSettingModel.SystemType == ConfigHelper.SystemType.All || GlobalResource.ConfigSettingModel.SystemType == ConfigHelper.SystemType.Spray)
                                {
                                    TreeNode node = new TreeNode(revitType.GetDescription());
                                    node.Tag = revitType;
                                    this.treeView_categorys.Nodes.Add(node);
                                }
                                break;
                            }
                        default:
                            {
                                TreeNode node = new TreeNode(revitType.GetDescription());
                                node.Tag = revitType;
                                this.treeView_categorys.Nodes.Add(node);
                                break;
                            }
                    }
                }
            }
            this.treeView_categorys.NodeMouseClick += TreeView_categorys_NodeMouseClick;
@@ -143,43 +181,43 @@
        {
            if (File.Exists(path))
            {
                if (externalEvent != null)
                //if (externalEvent != null)
                //{
                //    externalEvent_Execute.ExecuteAction = new Action<UIApplication>((app) =>
                //    {
                var doc = _data.Application.ActiveUIDocument.Document;
                var fdoc = doc.Application.OpenDocumentFile(path);
                var fm = fdoc.FamilyManager;
                var ls = GetParamsList().Where(c => c.FamilyType.Equals(revitType.GetDescriptioin()));
                if (ls != null && ls.Any())
                {
                    externalEvent_Execute.ExecuteAction = new Action<UIApplication>((app) =>
                    using (var trans = new Transaction(fdoc, "addParameters"))
                    {
                        var doc = _data.Application.ActiveUIDocument.Document;
                        var fdoc = doc.Application.OpenDocumentFile(path);
                        var fm = fdoc.FamilyManager;
                        var ls = GetParamsList().Where(c => c.FamilyType.Equals(revitType.GetDescriptioin()));
                        if (ls != null && ls.Any())
                        trans.Start();
                        ls.ForEach(c =>
                        {
                            using (var trans = new Transaction(fdoc, "addParameters"))
                            var ps = fm.get_Parameter(c.ParamsName);
                            if (ps == null)
                            {
                                trans.Start();
                                ls.ForEach(c =>
                                {
                                    var ps = fm.get_Parameter(c.ParamsName);
                                    if (ps == null)
                                    {
                                        fm.AddParameter(c.ParamsName, Autodesk.Revit.DB.BuiltInParameterGroup.PG_GENERAL, Autodesk.Revit.DB.ParameterType.Text, true);
                                    }
                                    if (!string.IsNullOrEmpty(c.DefaultValue))
                                    {
                                        var sp = fm.get_Parameter(c.ParamsName);
                                        if (sp != null)
                                        {
                                            fm.Set(sp, c.DefaultValue);
                                        }
                                    }
                                });
                                trans.Commit();
                                fm.AddParameter(c.ParamsName, Autodesk.Revit.DB.BuiltInParameterGroup.PG_GENERAL, Autodesk.Revit.DB.ParameterType.Text, true);
                            }
                        }
                        fdoc.Close();
                    });
                    externalEvent.Raise();
                            if (!string.IsNullOrEmpty(c.DefaultValue))
                            {
                                var sp = fm.get_Parameter(c.ParamsName);
                                if (sp != null)
                                {
                                    fm.Set(sp, c.DefaultValue);
                                }
                            }
                        });
                        trans.Commit();
                    }
                }
                fdoc.Close();
                //    });
                //    externalEvent.Raise();
                //}
            }
        }
@@ -218,8 +256,8 @@
             new FamilyParamsModel(){ FamilyType="管道", ParamsName="下游标高",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="管道", ParamsName="上游初始水质",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="管道", ParamsName="下游初始水质",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="管道", ParamsName="直径",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="管道", ParamsName="长度",DefaultValue=""},
             //new FamilyParamsModel(){ FamilyType="管道", ParamsName="直径",DefaultValue=""},
             //new FamilyParamsModel(){ FamilyType="管道", ParamsName="长度",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="管道", ParamsName="粗糙系数",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="管道", ParamsName="局部阻力系数",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="管道", ParamsName="是否自定义",DefaultValue="是"},
@@ -267,7 +305,7 @@
             new FamilyParamsModel(){ FamilyType="喷淋头", ParamsName="型号信息",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="喷淋头", ParamsName="标签",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="喷淋头", ParamsName="说明信息",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="喷淋头", ParamsName="初始水质",DefaultValue="Open"},
             new FamilyParamsModel(){ FamilyType="喷淋头", ParamsName="初始水质",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="喷淋头", ParamsName="喷射系数",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="喷淋头", ParamsName="标高信息",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="喷淋头", ParamsName="需水量",DefaultValue=""},
@@ -281,7 +319,7 @@
             new FamilyParamsModel(){ FamilyType="闷头", ParamsName="型号信息",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="闷头", ParamsName="标签",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="闷头", ParamsName="说明信息",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="闷头", ParamsName="初始水质",DefaultValue="Open"},
             new FamilyParamsModel(){ FamilyType="闷头", ParamsName="初始水质",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="闷头", ParamsName="标高信息",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="闷头", ParamsName="需水量",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="闷头", ParamsName="需水模式",DefaultValue=""},
@@ -294,7 +332,7 @@
             new FamilyParamsModel(){ FamilyType="三通", ParamsName="型号信息",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="三通", ParamsName="标签",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="三通", ParamsName="说明信息",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="三通", ParamsName="初始水质",DefaultValue="Open"},
             new FamilyParamsModel(){ FamilyType="三通", ParamsName="初始水质",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="三通", ParamsName="标高信息",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="三通", ParamsName="需水量",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="三通", ParamsName="需水模式",DefaultValue=""},
@@ -307,7 +345,7 @@
             new FamilyParamsModel(){ FamilyType="四通", ParamsName="型号信息",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="四通", ParamsName="标签",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="四通", ParamsName="说明信息",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="四通", ParamsName="初始水质",DefaultValue="Open"},
             new FamilyParamsModel(){ FamilyType="四通", ParamsName="初始水质",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="四通", ParamsName="标高信息",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="四通", ParamsName="需水量",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="四通", ParamsName="需水模式",DefaultValue=""},
@@ -320,7 +358,7 @@
             new FamilyParamsModel(){ FamilyType="水表", ParamsName="型号信息",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="水表", ParamsName="标签",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="水表", ParamsName="说明信息",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="水表", ParamsName="初始水质",DefaultValue="Open"},
             new FamilyParamsModel(){ FamilyType="水表", ParamsName="初始水质",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="水表", ParamsName="标高信息",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="水表", ParamsName="需水量",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="水表", ParamsName="需水模式",DefaultValue=""},
@@ -333,7 +371,7 @@
             new FamilyParamsModel(){ FamilyType="弯头", ParamsName="型号信息",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="弯头", ParamsName="标签",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="弯头", ParamsName="说明信息",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="弯头", ParamsName="初始水质",DefaultValue="Open"},
             new FamilyParamsModel(){ FamilyType="弯头", ParamsName="初始水质",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="弯头", ParamsName="标高信息",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="弯头", ParamsName="需水量",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="弯头", ParamsName="需水模式",DefaultValue=""},
@@ -364,7 +402,7 @@
             new FamilyParamsModel(){ FamilyType="消火栓", ParamsName="型号信息",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="消火栓", ParamsName="标签",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="消火栓", ParamsName="说明信息",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="消火栓", ParamsName="初始水质",DefaultValue="Open"},
             new FamilyParamsModel(){ FamilyType="消火栓", ParamsName="初始水质",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="消火栓", ParamsName="流量系数",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="消火栓", ParamsName="标高信息",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="消火栓", ParamsName="需水量",DefaultValue=""},
@@ -378,7 +416,7 @@
             new FamilyParamsModel(){ FamilyType="水库", ParamsName="型号信息",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="水库", ParamsName="标签",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="水库", ParamsName="说明信息",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="水库", ParamsName="初始水质",DefaultValue="Open"},
             new FamilyParamsModel(){ FamilyType="水库", ParamsName="初始水质",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="水库", ParamsName="池底标高",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="水库", ParamsName="总水头",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="水库", ParamsName="水头模式",DefaultValue=""},
@@ -391,7 +429,7 @@
             new FamilyParamsModel(){ FamilyType="水箱", ParamsName="型号信息",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="水箱", ParamsName="标签",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="水箱", ParamsName="说明信息",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="水箱", ParamsName="初始水质",DefaultValue="Open"},
             new FamilyParamsModel(){ FamilyType="水箱", ParamsName="初始水质",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="水箱", ParamsName="池底标高",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="水箱", ParamsName="初始水位",DefaultValue=""},
             new FamilyParamsModel(){ FamilyType="水箱", ParamsName="最低水位",DefaultValue=""},
@@ -503,5 +541,65 @@
            }
            return bitmap;
        }
        private void simpleButton1_Click(object sender, EventArgs e)
        {
            InitParams();
        }
        private void InitParams()
        {
            var values = Enum.GetValues(typeof(RevitType));
            if (externalEvent != null)
            {
                externalEvent_Execute.ExecuteAction = new Action<UIApplication>((app) =>
                {
                    foreach (var value in values)
                    {
                        var revitType = (RevitType)value;
                        var path = GlobalResource.FamilysDirectory + $@"/{revitType.GetDescription()}";
                        var files = Directory.GetFiles(path);
                        foreach (var file in files)
                        {
                            var doc = _data.Application.ActiveUIDocument.Document;
                            var fdoc = doc.Application.OpenDocumentFile(path);
                            var fm = fdoc.FamilyManager;
                            var ls = GetParamsList().Where(c => c.FamilyType.Equals(revitType.GetDescriptioin()));
                            if (ls != null && ls.Any())
                            {
                                using (var trans = new Transaction(fdoc, "addParameters"))
                                {
                                    trans.Start();
                                    ls.ForEach(c =>
                                    {
                                        var ps = fm.get_Parameter(c.ParamsName);
                                        if (ps == null)
                                        {
                                            fm.AddParameter(c.ParamsName, Autodesk.Revit.DB.BuiltInParameterGroup.PG_GENERAL, Autodesk.Revit.DB.ParameterType.Text, true);
                                        }
                                        if (!string.IsNullOrEmpty(c.DefaultValue))
                                        {
                                            var sp = fm.get_Parameter(c.ParamsName);
                                            if (sp != null)
                                            {
                                                fm.Set(sp, c.DefaultValue);
                                            }
                                        }
                                    });
                                    trans.Commit();
                                }
                            }
                            fdoc.Close();
                        };
                    }
                });
                externalEvent.Raise();
                TaskDialog.Show("提示", "初始化成功!");
            }
        }
    }
}