Files
SzmediTools/Szmedi.RvKits/FamilyTools/ComponentInfoCmd.cs
2025-09-16 16:06:41 +08:00

625 lines
26 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using Autodesk.Revit.Attributes;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
using Microsoft.Win32;
using Newtonsoft.Json;
using Nice3point.Revit.Toolkit.External;
using System;
using System.Data;
using System.Linq;
using System.Windows;
using Szmedi.RvKits.ExportFamilyInfo;
namespace Szmedi.RvKits.FamilyTools
{
[Transaction(TransactionMode.Manual)]
public class ComponentInfoCmd : ExternalCommand
{
public override void Execute()
{
//AssemblyLoaderHelpers loader = new(GlobalVariables.DirAssembly);
ExportSettingsWin settings = null;
settings = new ExportSettingsWin();
settings.ShowDialog();
//loader.HookAssemblyResolve();
//try
//{
//}
//catch (Exception ex)
//{
// LogAssists.WriteLog(ex.Message);
// Result = Result.Failed;
//}
//finally
//{
// loader.UnhookAssemblyResolve();
//}
if (settings.DialogResult != true)
{
Result = Result.Cancelled;
return;
}
OpenFileDialog openFileDialog = new()
{
Filter = "<22><><EFBFBD>ļ<EFBFBD>(*.rfa)|*.rfa",
Multiselect = true
};
var savepath = Properties.Settings.Default.SavePath;
//Autodesk.Revit.UI.FileOpenDialog fileOpenDialog = new FileOpenDialog("<22><><EFBFBD>ļ<EFBFBD>(*.rfa)|*.rfa");
//fileOpenDialog.Show();
//fileOpenDialog.GetSelectedModelPath();
if (openFileDialog.ShowDialog() == true)
{
foreach (var filename in openFileDialog.FileNames)
{
var famdoc = Application.OpenDocumentFile(filename);
var dictJson = DictParas(famdoc);
try
{
DictionaryToJson(filename, dictJson, savepath);
}
catch (Exception ex)
{
LogAssists.WriteLog(ex.Message);
}
ExportThumbnail(savepath, filename, famdoc);
famdoc.Close(false);
var famFullPath = Path.Combine(savepath, Path.GetFileNameWithoutExtension(filename), Path.GetFileName(filename));
//DirectoryInfo FamDir = new DirectoryInfo(FamPath);
//if (!FamDir.Exists)
//{
// FamDir.Create();
//}
//File.Move(fullPath, FamFullPath);
FileInfo file = new(famFullPath);
if (file.Exists)
{
file.Delete();
}
File.Copy(filename, famFullPath);
}
}
}
private DataTable DtParasToExcel(Document doc, FamilyManager fm) //<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
{
//StringBuilder sb = new StringBuilder();//<2F>õ<EFBFBD><C3B5><EFBFBD><EFBFBD>е<EFBFBD>ö<EFBFBD><C3B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//sb.Append(famdoc.Title + "\r\n");
var ft = fm.CurrentType; //<2F><>ȡ<EFBFBD><C8A1>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>
DataTable dt = new();
//dt.Columns.Add("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", typeof(string));
dt.Columns.Add("<22><><EFBFBD><EFBFBD>", typeof(string));
dt.Columns.Add("<22><><EFBFBD><EFBFBD>ֵ", typeof(string));
dt.Columns.Add("<22><>ʽ", typeof(string));
if (ft == null)
{
//IList<FamilyParameter> faparas = fm.GetParameters();
//foreach (var para in faparas)
//{
// sb.Append(para.Definition.Name);
//}
using Transaction trans = new(doc);
trans.Start("<22>½<EFBFBD><C2BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
var NT = "NewType";
ft = fm.NewType(NT);
trans.Commit();
}
List<BuiltInParameterGroup> pgs = [];
foreach (FamilyParameter para in fm.Parameters)
{
if (!pgs.Contains(para.Definition.ParameterGroup))
{
pgs.Add(para.Definition.ParameterGroup);
}
}
foreach (var pg in pgs)
{
var drpg = dt.NewRow();
drpg[0] = null;
drpg[1] = LabelUtils.GetLabelFor(pg);
drpg[2] = null;
dt.Rows.Add(drpg);
foreach (FamilyParameter para in fm.Parameters)
{
if (para.Definition.ParameterGroup == pg)
{
var drpara = dt.NewRow();
drpara[0] = para.Definition.Name;
drpara[1] = ft.AsValueString(para);
drpara[2] = para.Formula;
dt.Rows.Add(drpara);
}
}
}
return dt;
//foreach (FamilyParameter para in fm.Parameters)
//{
// DataRow dr = dt.NewRow();
// dr[0] = LabelUtils.GetLabelFor(para.Definition.ParameterGroup);
// dr[1] = para.Definition.Name;
// dr[2] = ft.AsValueString(para);
// dt.Rows.Add(dr);
// //sb.Append(para.Definition.ParameterGroup + ":" + para.Definition.Name + ":" + ft.AsValueString(para) + "\r\n");
// //switch (para.StorageType)
// //{
// // case StorageType.Double:
// // sb.Append(para.Definition.Name + ":" + ft.AsDouble(para) * 304.8 + "\r\n");
// // break;
// // case StorageType.Integer:
// // sb.Append(para.Definition.Name + ":" + ft.AsInteger(para) * 304.8 + "\r\n");
// // break;
// // case StorageType.ElementId:
// // sb.Append(para.Definition.Name + ":" + ft.AsElementId(para) + "\r\n");
// // break;
// // case StorageType.String:
// // sb.Append(para.Definition.Name + ":" + ft.AsString(para) + "\r\n");
// // break;
// // case StorageType.None:
// // break;
// //}
//}
//TaskDialog.Show(header, sb.ToString());
}
private DataTable DtParasToJson(Document doc) //<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
{
//StringBuilder sb = new StringBuilder();//<2F>õ<EFBFBD><C3B5><EFBFBD><EFBFBD>е<EFBFBD>ö<EFBFBD><C3B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//sb.Append(famdoc.Title + "\r\n");
var fm = doc.FamilyManager;
var ft = fm.CurrentType; //<2F><>ȡ<EFBFBD><C8A1>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>
DataTable dt = new();
dt.Columns.Add("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", typeof(string));
dt.Columns.Add("<22><><EFBFBD><EFBFBD>", typeof(string));
dt.Columns.Add("<22><><EFBFBD><EFBFBD>ֵ", typeof(string));
dt.Columns.Add("<22><>ʽ", typeof(string));
if (ft == null)
{
//IList<FamilyParameter> faparas = fm.GetParameters();
//foreach (var para in faparas)
//{
// sb.Append(para.Definition.Name);
//}
using Transaction trans = new(doc);
trans.Start("<22>½<EFBFBD><C2BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
var NT = "NewType";
ft = fm.NewType(NT);
trans.Commit();
}
List<BuiltInParameterGroup> pgs = [];
foreach (FamilyParameter para in fm.Parameters)
{
if (!pgs.Contains(para.Definition.ParameterGroup))
{
pgs.Add(para.Definition.ParameterGroup);
}
}
foreach (var pg in pgs)
{
foreach (FamilyParameter para in fm.Parameters)
{
if (para.Definition.ParameterGroup == pg)
{
var drpara = dt.NewRow();
drpara[0] = LabelUtils.GetLabelFor(pg);
drpara[1] = para.Definition.Name;
drpara[2] = ft.AsValueString(para);
drpara[3] = para.Formula;
dt.Rows.Add(drpara);
}
}
}
return dt;
}
/// <summary>
/// <20><>ȡתJson<6F>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
/// <param name="doc"></param>
/// <returns></returns>
private Dictionary<string, Dictionary<string, JsonPara>> DictParas(Document doc)
{
var fm = doc.FamilyManager;
var ft = fm.CurrentType; //<2F><>ȡ<EFBFBD><C8A1>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>
//<2F><><EFBFBD>飬dir<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>>
Dictionary<string, Dictionary<string, JsonPara>> paragroups = [];
using Transaction trans = new(doc);
trans.Start("<22>½<EFBFBD><C2BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
ft ??= fm.NewType("NewType");
List<BuiltInParameterGroup> pgs = [];
foreach (FamilyParameter para in fm.Parameters)
{
if (!pgs.Contains(para.Definition.ParameterGroup))
{
pgs.Add(para.Definition.ParameterGroup);
}
}
foreach (var pg in pgs)
{
Dictionary<string, JsonPara> paras = [];
foreach (FamilyParameter para in fm.Parameters)
{
if (para.Definition.ParameterGroup == pg)
{
JsonPara JP = new() { Value = ft.AsValueString(para), Formula = para.Formula };
paras.Add(para.Definition.Name, JP);
//drpara[0] = para.Definition.Name;
//drpara[1] = ft.AsValueString(para);
//drpara[2] = para.Formula;
}
}
paragroups.Add(LabelUtils.GetLabelFor(pg), paras);
}
trans.RollBack();
return paragroups;
}
private void DictionaryToJson(string fullName, Dictionary<string, Dictionary<string, JsonPara>> dicts, string DirChoosed)
{
//string filename = "";
//try
//{
// FileInfo file = new FileInfo(filename);
// string json = File.ReadAllText("config.json");
// dynamic jsonObj = Newtonsoft.Json.JsonConvert.DeserializeObject(json);
// //jsonObj["L_BPointMoveDelay"] = LBPointdelay.ToString();
// string output = Newtonsoft.Json.JsonConvert.SerializeObject(jsonObj, Newtonsoft.Json.Formatting.Indented);
// File.WriteAllText("config.json", output);
//}
//catch (Exception)
//{
// throw;
//}
//string serverAppPath = Request.PhysicalApplicationPath.ToString();
//<2F><>ȡ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>չ<EFBFBD><D5B9><EFBFBD><EFBFBD>
var safefilename = Path.GetFileNameWithoutExtension(fullName);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>չ<EFBFBD><D5B9><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7>+<2B>ļ<EFBFBD><C4BC><EFBFBD>
//string JosnWithoutEx = DirChoosed + "\\" + safefilename + "\\" + safefilename + "-" + "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
//<2F><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ¼<C4BF><C2BC><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>Ŀ¼<C4BF><C2BC>
var fileDir = Path.Combine(DirChoosed, safefilename);
//<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD>
var file_fullpath = Path.Combine(DirChoosed, safefilename, $"{safefilename}.json");
if (!Directory.Exists(fileDir))
{
Directory.CreateDirectory(fileDir);
}
if (!File.Exists(file_fullpath))
{
//File.Create(file_fullpath);
var JsonString = JsonConvert.SerializeObject(dicts);
File.WriteAllText(file_fullpath, JsonString);
}
//<2F><>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD>ļ<EFBFBD>
//using (StreamWriter sw = new StreamWriter(file_fullpath))
//{
// JsonSerializer serializer = new JsonSerializer();
// serializer.Converters.Add(new JavaScriptDateTimeConverter());
// serializer.NullValueHandling = NullValueHandling.Ignore;
// //<2F><><EFBFBD><EFBFBD>Json.net<65><74>д<EFBFBD><D0B4><EFBFBD><EFBFBD>
// JsonWriter writer = new JsonTextWriter(sw);
// //<2F><>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><D0BB><EFBFBD>д<EFBFBD><D0B4>Json.net<65><74>JsonWriter<65><72><EFBFBD><EFBFBD>
// serializer.Serialize(writer, lot);
// //ser.Serialize(writer, ht);
// writer.Close();
// sw.Close();
//}
}
/// <summary>
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>
/// </summary>
/// <param name="saveDirChoosed"></param>
/// <param name="filesFullPathChoosed"></param>
/// <param name="famodc"></param>
/// <param name="views"></param>
/// <param name="forward"></param>
private void ExportOption(string saveDirChoosed, string filesFullPathChoosed, Document famodc, IList<ElementId> views, XYZ forward)
{
var Imapath = Path.Combine(saveDirChoosed, Path.GetFileNameWithoutExtension(filesFullPathChoosed));
var format = Properties.Settings.Default.ImgFormat;
if (!Directory.Exists(Imapath))
{
Directory.CreateDirectory(Imapath);
}
ImageExportOptions options =
new()
{
FilePath = Path.Combine(Imapath, $"{forward}"),
FitDirection = FitDirectionType.Horizontal,
HLRandWFViewsFileType = (ImageFileType)Enum.Parse(typeof(ImageFileType), format),
//HLRandWFViewsFileType = ImageFileType.JPEGLossless,
//ShadowViewsFileType = (ImageFileType)Enum.Parse(typeof(ImageFileType), format),
ExportRange = ExportRange.SetOfViews,
ImageResolution = ImageResolution.DPI_600,
//ShouldCreateWebSite = false,
ZoomType = ZoomFitType.FitToPage,
PixelSize = int.Parse(Properties.Settings.Default.ImgSize)
};
//if (views.Count > 0)
//{
// options.SetViewsAndSheets(views);
// options.ExportRange = ExportRange.SetOfViews;
//}
//else
//{
// options.ExportRange = ExportRange
// .VisibleRegionOfCurrentView;
//}
options.SetViewsAndSheets(views);
famodc.ExportImage(options);
}
private void ExportThumbnail(string saveDirChoosed, string filesFullPathChoosed, Document famdoc)
{
IList<ElementId> views = [];
//FilteredElementCollector concol = new FilteredElementCollector(famdoc).QueryElementsByType(typeof(ConnectorElement)).OfCategory(BuiltInCategory.OST_ConnectorElem);
//FilteredElementCollector dimcol = new FilteredElementCollector(famdoc).QueryElementsByType(typeof(Dimension)).OfCategory(BuiltInCategory.OST_Dimensions);
var v3d = new FilteredElementCollector(famdoc)
.OfClass(typeof(View))
.OfCategory(BuiltInCategory.OST_Views)
.OfType<View3D>()
.FirstOrDefault(x => x.ViewType == ViewType.ThreeD);
//ElementClassFilter dimcf = new ElementClassFilter(typeof(Dimension));
//ElementClassFilter ardimcf = new ElementClassFilter(typeof(AngularDimension));
//LogicalOrFilter orFilter = new LogicalOrFilter(dimcf, ardimcf);
// FilteredElementCollector dimcol = new FilteredElementCollector(famdoc).WherePasses(orFilter);
//var viewFamilyType = new FilteredElementCollector(famdoc).QueryElementsByType(typeof(ViewFamilyType)).OfType<ViewFamilyType>().LastOrDefault(x => x.ViewFamily == ViewFamily.ThreeDimensional);
//var viewFamilyTypes = new FilteredElementCollector(famdoc).QueryElementsByType(typeof(ViewFamilyType)).OfType<ViewFamilyType>().GetEnumerator();
//var direction = new XYZ(-1, 1, -1);
using Transaction trans = new(famdoc, "ExportImage");
trans.Start();
//XYZ eyep1 = new XYZ(1.66983442269142, -1.62882392400378, 6.75513625996179);
//XYZ forwarddir1 = new XYZ(0.577350269189626, 0.577350269189626, -0.577350269189626);
//XYZ updir1 = new XYZ(0.408248290463863, 0.408248290463863, 0.816496580927726);
//ViewOrientation3D isometric1 = new ViewOrientation3D(eyep1, forwarddir1, updir1);
//XYZ eyep2 = new XYZ(6.66133814775094E-15, 2.22788354954364, 4.88410451942765);
//XYZ forwarddir2 = new XYZ(0, -1, 0);
//XYZ updir2 = new XYZ(0, 0, 1);
//ViewOrientation3D isometric2 = new ViewOrientation3D(eyep2, forwarddir2, updir2);
//var coord = v3d.GetOrientation();
var graphicDisplayOptions = v3d.get_Parameter(BuiltInParameter.MODEL_GRAPHICS_STYLE);
graphicDisplayOptions.Set(8);
var elemIds = new FilteredElementCollector(famdoc)
.OfClass(typeof(ConnectorElement)).ToElementIds();
var elemIds1 = new FilteredElementCollector(famdoc)
.OfCategory(BuiltInCategory.OST_Dimensions).ToElementIds();
v3d.HideElements(elemIds);
v3d.HideElements(elemIds1);
//ģ<><C4A3><EFBFBD><EFBFBD>ʾΪ<CABE><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//Options op = new Options();
//op.DetailLevel = ViewDetailLevel.Fine;
//op.View.DisplayStyle = DisplayStyle.Realistic;
//famdoc.ActiveView = v3d;
views.Add(v3d.Id);
trans.Commit();
//v3d.SetOrientation(new ViewOrientation3D(new XYZ(-1, 1, -1), new XYZ(0, 1, 1), new XYZ(0, 1, -1)));
XYZ forward = new(-1, 1, -1);
v3d.OrientTo(forward);
ExportOption(saveDirChoosed, filesFullPathChoosed, famdoc, views, forward);
//v3d.OrientTo(new XYZ(0, -1, 0));
//ExportOption(ps, saveDirChoosed, filesFullPathChoosed, famdoc, views);
#region MyRegion
//while (viewFamilyTypes.MoveNext()) //һ<><D2BB>Ҫ<EFBFBD><D2AA>movenext,<2C><>Ȼ<EFBFBD><C8BB><EFBFBD><EFBFBD><EFBFBD>
//{
// if (viewFamilyTypes.Current.ViewFamily == ViewFamily.ThreeDimensional)
// {
// var view3D = View3D.CreateIsometric(famdoc, viewFamilyTypes.Current.Id);
// //var view3D = (viewFamilyType != null) ? View3D.CreateIsometric(famdoc, viewFamilyType.Id) : null;
// //var viewer = view3D.GetOrientation();
// if (view3D != null)
// {
// if (concol != null)
// {
// famdoc.Delete(concol.ToElementIds());
// //famdoc.Delete(dimcol.ToElementIds());
// }
// if (dimcol != null)
// {
// foreach (Dimension dim in dimcol.ToElements())
// {
// if (dim.ValueString != null)
// {
// //System.Diagnostics.Debug.WriteLine(dim.Id);
// try
// {
// famdoc.Delete(dim.Id);
// }
// catch (Exception)
// {
// //System.Diagnostics.Debug.WriteLine(dim.Id);
// }
// }
// }
// }
// views.Add(view3D.Id);
// var graphicDisplayOptions
// = view3D.get_Parameter(
// BuiltInParameter.MODEL_GRAPHICS_STYLE);
// //ģ<><C4A3><EFBFBD><EFBFBD>ʾΪ<CABE><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// graphicDisplayOptions.Set(6);
// }
// }
//}
#endregion
forward = new XYZ(1, -1, -1);
v3d.OrientTo(forward);
ExportOption(saveDirChoosed, filesFullPathChoosed, famdoc, views, forward);
forward = new XYZ(0, 1, 0);
v3d.OrientTo(forward);
ExportOption(saveDirChoosed, filesFullPathChoosed, famdoc, views, forward);
//ExportOption(ps, saveDirChoosed, filesFullPathChoosed, famdoc, views);
}
//private void TableToExcel(string fullName, DataTable dt, string DirChoosed)
//{
// IWorkbook workbook;
// Configuration config = new Configuration();
// //<2F><>ȡ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>չ<EFBFBD><D5B9><EFBFBD><EFBFBD>
// string safefilename = Path.GetFileNameWithoutExtension(fullName);
// //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>չ<EFBFBD><D5B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7>
// string ExcelWithoutEx = DirChoosed + "\\" + safefilename + "\\" + safefilename + "-" + "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
// //<2F><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ¼<C4BF><C2BC><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>Ŀ¼<C4BF><C2BC>
// string fileDir = DirChoosed + "\\" + safefilename + "\\";
// //<2F><><EFBFBD><EFBFBD>Ŀ¼
// DirectoryInfo fileDirInfo = new DirectoryInfo(fileDir);
// if (!fileDirInfo.Exists)
// {
// fileDirInfo.Create();
// }
// string filename = null;
// string ver = config.GetConfig(Selection.ExcelVersion);
// //if (ver == "Excel <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(*.xlsx)")
// //{
// // workbook = new XSSFWorkbook();
// // filename = ExcelWithoutEx + ".xlsx";
// //}
// if (ver == "Excel 97-2003 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(*.xls)")
// {
// workbook = new HSSFWorkbook();
// filename = ExcelWithoutEx + ".xls";
// }
// else
// {
// workbook = null;
// }
// //using (FileStream fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read))
// //{
// // //<2F>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD>ݶ<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>ı<EFBFBD><C4B1><EFBFBD><E6B1BE><EFBFBD><EFBFBD>2007<30><37><EFBFBD><EFBFBD>2003<30><EFBFBD><E6B9A4>book
// // workbook = WorkbookFactory.Create(fileName);
// // fileStream.Close();
// //}
// if (workbook == null)
// {
// return;
// }
// ISheet sheet = string.IsNullOrEmpty(dt.TableName) ? workbook.CreateSheet("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>") : workbook.CreateSheet(dt.TableName);
// ICellStyle style = workbook.CreateCellStyle();
// //style.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;
// //style.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;
// //style.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin;
// //style.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin;
// IFont font = workbook.CreateFont();
// font.FontHeightInPoints = 14;
// //font.Boldweight = (short)NPOI.SS.UserModel.FontBoldWeight.Bold;
// font.FontName = "<22><><EFBFBD><EFBFBD>";
// style.SetFont(font);//HEAD <20><>ʽ
// //<2F><>ͷ
// IRow row = sheet.CreateRow(0);
// for (int i = 0; i < dt.Columns.Count; i++)
// {
// //ICellStyle ics = workbook.CreateCellStyle();
// //ics.FillPattern = NPOI.SS.UserModel.FillPattern.SolidForeground;
// //cell.CellStyle = ics;
// ICell cell = row.CreateCell(i);
// cell.SetCellValue(dt.Columns[i].ColumnName);
// }
// //<2F><><EFBFBD><EFBFBD>
// for (int i = 0; i < dt.Rows.Count; i++)
// {
// IRow row1 = sheet.CreateRow(i + 1);
// for (int j = 0; j < dt.Columns.Count; j++)
// {
// ICell cell = row1.CreateCell(j);
// if (dt.Rows[i][0].ToString() == "")
// {
// cell.CellStyle = style;
// //IFont f = workbook.CreateFont();
// //f.FontHeightInPoints = 14;
// //cell.CellStyle.SetFont(f);
// }
// cell.SetCellValue(dt.Rows[i][j].ToString());
// }
// }
// //תΪ<D7AA>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD>
// MemoryStream stream = new MemoryStream();
// workbook.Write(stream);
// var buf = stream.ToArray();
// FileInfo file = new FileInfo(filename);
// //<2F><><EFBFBD><EFBFBD>ΪExcel<65>ļ<EFBFBD>
// using (FileStream fs = new FileStream(filename, FileMode.Create, FileAccess.Write))
// {
// fs.Write(buf, 0, buf.Length);
// fs.Flush();
// }
//}
//foreach (Autodesk.Revit.DB.View view in views)
//{
// //if (view.IsTemplate) continue;
// if (view.ViewType == ViewType.ThreeD)
// {
// Transaction trans = new Transaction(famdoc, "Export Image");
// trans.Start();
// if (concol!=null)
// {
// famdoc.Delete(concol.ToElementIds());
// }
// var graphicDisplayOptions = view.get_Parameter(BuiltInParameter.MODEL_GRAPHICS_STYLE);
// graphicDisplayOptions.Set(6);
// trans.Commit();
// ImageExportList.Add(view.Id);
// }
//}
//string directroy = Path.GetDirectoryName(path) +"\\"+;
}
}