using Autodesk.Revit.DB;
|
using Autodesk.Revit.UI;
|
using DevExpress.Utils.Extensions;
|
using HStation.RevitDev.Model.ModelEnum;
|
using HStation.RevitDev.RevitDataExport.Common;
|
using HStation.RevitDev.RevitDataExport.Entity;
|
using HStation.RevitDev.RevitDataExport.Utility;
|
using System;
|
using System.Drawing;
|
using System.IO;
|
using System.Linq;
|
using System.Windows.Forms;
|
|
namespace HStation.RevitDev.RevitDataExport.Forms
|
{
|
public partial class Form_FamilyManager : System.Windows.Forms.Form
|
{
|
ExternalCommandData _data;
|
private ExternalEvent_Execute externalEvent_Execute;
|
private ExternalEvent externalEvent;
|
|
public Form_FamilyManager(ExternalCommandData data)
|
{
|
_data = data;
|
InitializeComponent();
|
InitializeControls();
|
externalEvent_Execute = new ExternalEvent_Execute("Ex");
|
externalEvent = ExternalEvent.Create(externalEvent_Execute);
|
}
|
|
private void InitializeControls()
|
{
|
InitTreeView();
|
InitFamilyPanel();
|
}
|
|
private void InitFamilyPanel()
|
{
|
|
}
|
|
private void InitTreeView()
|
{
|
var values = Enum.GetValues(typeof(RevitType));
|
foreach (var value in values)
|
{
|
var revitType = (RevitType)value;
|
if (revitType.IsRequired())
|
{
|
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;
|
}
|
|
private void TreeView_categorys_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
|
{
|
var node = e.Node;
|
if (node == null) { return; }
|
|
var revitType = (RevitType)node.Tag;
|
if (!revitType.IsRequired()) { return; }
|
var dscribe = revitType.GetDescription();
|
var dir = Path.Combine(GlobalResource.FamilysDirectory, dscribe);
|
if (!Directory.Exists(dir))
|
{
|
TaskDialog.Show("错误", $"未找到{dscribe}目录");
|
return;
|
}
|
string[] filePaths = Directory.GetFiles(dir, "*.rfa", SearchOption.TopDirectoryOnly);
|
this.flowLayoutPanel_familys.Controls.Clear();
|
var addBtn = CreateAddButton(revitType);
|
flowLayoutPanel_familys.Controls.Add(addBtn);
|
foreach (string rfaPath in filePaths)
|
{
|
if (RevitUtil.IsBackUpFile(rfaPath))
|
{
|
continue;
|
}
|
Bitmap bitmap = GetRfaThumbnail(dir, rfaPath);
|
Button button = CreateButton(bitmap, rfaPath, revitType);
|
flowLayoutPanel_familys.Controls.Add(button);
|
}
|
}
|
|
private Button CreateAddButton(RevitType type)
|
{
|
var pngPath = Path.Combine(GlobalResource.ImageDirectory, "添加.png");
|
var bitmap = Bitmap.FromFile(pngPath) as Bitmap;
|
Button btn = new Button();
|
btn.Height = GlobalResource.ThumbnailSize;
|
btn.Tag = type;
|
btn.Width = GlobalResource.ThumbnailSize;
|
ToolTip toolTip = new ToolTip();
|
toolTip.SetToolTip(btn, "添加族文件");
|
btn.BackgroundImage = bitmap;
|
btn.BackgroundImageLayout = ImageLayout.Stretch;
|
btn.Click += Btn_Click;
|
return btn;
|
}
|
|
private void Btn_Click(object sender, EventArgs e)
|
{
|
try
|
{
|
Button button = sender as Button;
|
var openFileDialog = new OpenFileDialog();
|
openFileDialog.FileName = "选择族文件";
|
openFileDialog.Filter = "族文件(*.rfa)|*.rfa";
|
openFileDialog.Title = "选择族文件";
|
openFileDialog.Multiselect = true;
|
if (openFileDialog.ShowDialog() != DialogResult.OK)
|
{
|
return;
|
}
|
|
var selectPaths = openFileDialog.FileNames;
|
|
var revitType = (RevitType)button.Tag;
|
var dscribe = revitType.GetDescription();
|
var dir = Path.Combine(GlobalResource.FamilysDirectory, dscribe);
|
var validFiles = RevitUtil.ValidateFileVersion(selectPaths).ToList();
|
for (int i = 0; i < validFiles.Count(); i++)
|
{
|
string path = validFiles[i];
|
CopyToImageDirectory(ref path, revitType);
|
Bitmap bitmap = GetRfaThumbnail(dir, path);
|
Button btn = CreateButton(bitmap, path, revitType);
|
CreateParams(path, revitType);
|
flowLayoutPanel_familys.Controls.Add(btn);
|
}
|
}
|
catch (Exception ex)
|
{
|
TaskDialog.Show("错误", $"{ex.Message}");
|
}
|
TaskDialog.Show("提示", "添加成功!");
|
}
|
|
private void CreateParams(string path, RevitType revitType)
|
{
|
if (File.Exists(path))
|
{
|
//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())
|
{
|
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();
|
//}
|
}
|
}
|
|
private System.Collections.Generic.List<FamilyParamsModel> GetParamsList()
|
{
|
var ls = new System.Collections.Generic.List<FamilyParamsModel>() {
|
#region 水泵
|
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="Open"},
|
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=""},
|
new FamilyParamsModel(){ FamilyType="水泵", ParamsName="流量效率曲线",DefaultValue=""},
|
new FamilyParamsModel(){ FamilyType="水泵", ParamsName="是否自定义",DefaultValue="是"},
|
#endregion
|
|
#region 管道
|
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="Open"},
|
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="是"},
|
#endregion
|
|
#region 换热器
|
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="Open"},
|
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="是"},
|
#endregion
|
|
#region 阀门
|
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="Open"},
|
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="是"},
|
#endregion
|
|
#region 喷淋头
|
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=""},
|
new FamilyParamsModel(){ FamilyType="喷淋头", ParamsName="是否自定义",DefaultValue="是"},
|
#endregion
|
|
#region 闷头
|
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="是"},
|
#endregion
|
|
#region 三通
|
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="是"},
|
#endregion
|
|
#region 四通
|
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="是"},
|
#endregion
|
|
#region 水表
|
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="是"},
|
#endregion
|
|
#region 弯头
|
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="是"},
|
#endregion
|
|
#region 过渡件
|
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="Open"},
|
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="是"},
|
#endregion
|
|
#region 消火栓
|
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=""},
|
new FamilyParamsModel(){ FamilyType="消火栓", ParamsName="是否自定义",DefaultValue="是"},
|
#endregion
|
|
#region 水库
|
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="是"},
|
#endregion
|
|
#region 水箱
|
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=""},
|
new FamilyParamsModel(){ FamilyType="水箱", ParamsName="直径",DefaultValue=""},
|
new FamilyParamsModel(){ FamilyType="水箱", ParamsName="最小容积",DefaultValue=""},
|
new FamilyParamsModel(){ FamilyType="水箱", ParamsName="容积曲线",DefaultValue=""},
|
new FamilyParamsModel(){ FamilyType="水箱", ParamsName="是否自定义",DefaultValue="是"},
|
#endregion
|
|
#region 其他
|
|
#endregion
|
};
|
|
//File.WriteAllText(GlobalResource.ParamsFilePath, JsonHelper.ToJson(ls));
|
return ls;
|
}
|
|
private void CopyToImageDirectory(ref string path, RevitType revitType)
|
{
|
var fileName = Path.GetFileName(path);
|
var newPath = Path.Combine(GlobalResource.FamilysDirectory + $@"/{revitType.GetDescription()}", fileName);
|
try
|
{
|
if (path != newPath)
|
{
|
|
File.Copy(path, newPath, true);
|
path = newPath;
|
}
|
}
|
catch (Exception ex)
|
{
|
TaskDialog.Show(path, $"文件复制失败,{ex.Message}");
|
}
|
}
|
|
private Button CreateButton(Bitmap bitmap, string rfaPath, RevitType revitType)
|
{
|
string fileName = Path.GetFileName(rfaPath);
|
ContextMenu menu = CreateContextMenu();
|
|
Button btn = new Button();
|
btn.ContextMenu = menu;
|
btn.Tag = revitType;
|
menu.Tag = btn;
|
btn.Text = fileName;
|
btn.TextAlign = ContentAlignment.BottomCenter;
|
ToolTip toolTip = new ToolTip();
|
toolTip.SetToolTip(btn, fileName);
|
btn.Height = GlobalResource.ThumbnailSize;
|
btn.Width = GlobalResource.ThumbnailSize;
|
btn.BackgroundImage = bitmap;
|
btn.BackgroundImageLayout = ImageLayout.Stretch;
|
btn.Click += Box_Click;
|
return btn;
|
}
|
|
private ContextMenu CreateContextMenu()
|
{
|
ContextMenu menu = new ContextMenu();
|
MenuItem item = new MenuItem();
|
item.Text = "删除";
|
item.Click += ItemRightBtnClick;
|
menu.MenuItems.Add(item);
|
return menu;
|
}
|
|
private void ItemRightBtnClick(object sender, EventArgs e)
|
{
|
try
|
{
|
var item = sender as MenuItem;
|
Button btn = (Button)item.Parent.Tag;
|
RevitType revitType = (RevitType)btn.Tag;
|
var path = Path.Combine(
|
GlobalResource.FamilysDirectory,
|
revitType.GetDescription(),
|
Path.GetFileName(btn.Text));
|
this.flowLayoutPanel_familys.Controls.Remove(btn);
|
File.SetAttributes(path, FileAttributes.Normal);
|
File.Delete(path);
|
}
|
catch (Exception ex)
|
{
|
TaskDialog.Show("错误", ex.Message);
|
}
|
}
|
|
private void Box_Click(object sender, EventArgs e)
|
{
|
TaskDialog.Show("提示", "点击了图标");
|
}
|
|
private static Bitmap GetRfaThumbnail(string dir, string rfaPath)
|
{
|
Bitmap bitmap = null;
|
var pngName = Path.GetFileNameWithoutExtension(rfaPath);
|
var pngPath = Path.Combine(dir, pngName + ".png");
|
|
if (!File.Exists(pngPath))
|
{
|
bitmap = ThumbnailUtils.GetThumbnailWithoutRevit(rfaPath);
|
}
|
else
|
{
|
bitmap = Bitmap.FromFile(pngPath) as Bitmap;
|
}
|
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("提示", "初始化成功!");
|
|
}
|
}
|
}
|
}
|