添加项目文件。
This commit is contained in:
205
CDMUtil/Common/CDMComponent2Excel.cs
Normal file
205
CDMUtil/Common/CDMComponent2Excel.cs
Normal file
@@ -0,0 +1,205 @@
|
||||
using CDM.Interop.Revit.CDMComponent;
|
||||
using OfficeOpenXml;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.IO;
|
||||
|
||||
namespace CDM.Interop.Revit
|
||||
{
|
||||
class CDMComponent2Excel
|
||||
{
|
||||
//Math.Round(number, 2, MidpointRounding.AwayFromZero)四舍五入
|
||||
public static void CDMFloorsToExcel(List<CDMFloor> floors, string sourceFileName, string destFolder)
|
||||
{
|
||||
foreach (var floor in floors)
|
||||
{
|
||||
string destFileName = destFolder + "\\" + floor.HcdmClass + "-" + floor.HcdmNumber + ".xlsx";
|
||||
File.Copy(sourceFileName, destFileName, true);
|
||||
|
||||
FileInfo fi = new FileInfo(destFileName);
|
||||
using (ExcelPackage package = new ExcelPackage(fi))
|
||||
{
|
||||
//var worksheet = package.Workbook.Worksheets["基本构件"];
|
||||
var worksheet = package.Workbook.Worksheets[1];
|
||||
|
||||
//构件标准名称
|
||||
worksheet.Cells["G2"].Value = floor.Name;
|
||||
worksheet.Cells["G3"].Value = floor.HcdmClass;
|
||||
worksheet.Cells["G4"].Value = floor.HcdmClass + "-" + floor.HcdmNumber;
|
||||
|
||||
worksheet.Cells["H14"].Value = floor.Xl;
|
||||
worksheet.Cells["H15"].Value = floor.Yw;
|
||||
worksheet.Cells["H16"].Value = floor.Zh;
|
||||
worksheet.Cells["H17"].Value = 0;
|
||||
|
||||
worksheet.Cells["H18"].Value = floor.L;
|
||||
worksheet.Cells["H19"].Value = floor.W;
|
||||
worksheet.Cells["H20"].Value = floor.T;
|
||||
|
||||
var worksheet1 = package.Workbook.Worksheets["方形洞口"];
|
||||
try
|
||||
{
|
||||
worksheet1.Cells["H7"].Value = floor.CDMopenings[0].Xl;
|
||||
worksheet1.Cells["H8"].Value = floor.CDMopenings[0].Yw;
|
||||
worksheet1.Cells["H9"].Value = floor.CDMopenings[0].Length;
|
||||
worksheet1.Cells["H10"].Value = floor.CDMopenings[0].Width;
|
||||
|
||||
worksheet1.Cells["H11"].Value = floor.CDMopenings[1].Xl;
|
||||
worksheet1.Cells["H12"].Value = floor.CDMopenings[1].Yw;
|
||||
worksheet1.Cells["H13"].Value = floor.CDMopenings[1].Length;
|
||||
worksheet1.Cells["H14"].Value = floor.CDMopenings[1].Width;
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
finally
|
||||
{
|
||||
package.Save();
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
public static void CDMColumnsToExcel(List<CDMColumn> columns, string sourceFileName, string destFolder)
|
||||
{
|
||||
foreach (var column in columns)
|
||||
{
|
||||
string destFileName = destFolder + "\\" + column.HcdmClass + "-" + column.HcdmNumber + ".xlsx";
|
||||
File.Copy(sourceFileName, destFileName, true);
|
||||
|
||||
|
||||
FileInfo fi = new FileInfo(destFileName);
|
||||
using (ExcelPackage package = new ExcelPackage(fi))
|
||||
{
|
||||
var worksheet = package.Workbook.Worksheets[1];
|
||||
//var worksheet = package.Workbook.Worksheets["基本构件"];
|
||||
|
||||
//构件标准名称
|
||||
worksheet.Cells["G2"].Value = column.Name;
|
||||
worksheet.Cells["G3"].Value = column.HcdmClass;
|
||||
worksheet.Cells["G4"].Value = column.HcdmClass + "-" + column.HcdmNumber;
|
||||
|
||||
worksheet.Cells["H14"].Value = column.Xl;
|
||||
worksheet.Cells["H15"].Value = column.Yw;
|
||||
worksheet.Cells["H16"].Value = column.Zh;
|
||||
worksheet.Cells["H17"].Value = 0;//均不旋转,方向角为0
|
||||
worksheet.Cells["H18"].Value = column.SectionB;
|
||||
worksheet.Cells["H19"].Value = column.SectionH;
|
||||
worksheet.Cells["H20"].Value = column.L;
|
||||
package.Save();
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
public static void CDMBeamsToExcel(List<CDMBeam> beams, string sourceFileName, string destFolder)
|
||||
{
|
||||
foreach (var beam in beams)
|
||||
{
|
||||
string destFileName = destFolder + "\\" + beam.HcdmClass + "-" + beam.HcdmNumber + ".xlsx";
|
||||
File.Copy(sourceFileName, destFileName, true);
|
||||
|
||||
FileInfo fi = new FileInfo(destFileName);
|
||||
using (ExcelPackage package = new ExcelPackage(fi))
|
||||
{
|
||||
var worksheet = package.Workbook.Worksheets[1];
|
||||
//var worksheet = package.Workbook.Worksheets["基本构件"];
|
||||
|
||||
//构件标准名称
|
||||
worksheet.Cells["G2"].Value = beam.Name;
|
||||
worksheet.Cells["G3"].Value = beam.HcdmClass;
|
||||
worksheet.Cells["G4"].Value = beam.HcdmClass + "-" + beam.HcdmNumber;
|
||||
|
||||
worksheet.Cells["H14"].Value = beam.Xl;
|
||||
worksheet.Cells["H15"].Value = beam.Yw;
|
||||
worksheet.Cells["H16"].Value = beam.Zh;
|
||||
worksheet.Cells["H17"].Value = beam.DegreesWithXAxis;
|
||||
|
||||
worksheet.Cells["H18"].Value = beam.L;
|
||||
worksheet.Cells["H19"].Value = beam.SectionB;
|
||||
worksheet.Cells["H20"].Value = beam.SectionH;
|
||||
package.Save();
|
||||
};
|
||||
}
|
||||
}
|
||||
public static void CDMWallsToExcel(List<CDMWall> walls, string sourceFileName, string destFolder)
|
||||
{
|
||||
foreach (var wall in walls)
|
||||
{
|
||||
|
||||
string destFileName = destFolder + "\\" + wall.HcdmClass + "-" + wall.HcdmNumber + ".xlsx";
|
||||
File.Copy(sourceFileName, destFileName, true);
|
||||
FileInfo fi = new FileInfo(destFileName);
|
||||
using (ExcelPackage package = new ExcelPackage(fi))
|
||||
{
|
||||
var worksheet = package.Workbook.Worksheets[1];
|
||||
//var worksheet = package.Workbook.Worksheets["基本构件"];
|
||||
|
||||
//构件标准名称
|
||||
worksheet.Cells["G2"].Value = wall.Name;
|
||||
worksheet.Cells["G3"].Value = wall.HcdmClass;
|
||||
worksheet.Cells["G4"].Value = wall.HcdmClass + "-" + wall.HcdmNumber;
|
||||
|
||||
worksheet.Cells["H14"].Value = wall.Xl;
|
||||
worksheet.Cells["H15"].Value = wall.Yw;
|
||||
worksheet.Cells["H16"].Value = wall.Zh;
|
||||
|
||||
package.Save();
|
||||
};
|
||||
}
|
||||
}
|
||||
public static void CDMStairsToExcel(List<CDMStairs> stairs, string sourceFileName, string destFolder)
|
||||
{
|
||||
foreach (var stair in stairs)
|
||||
{
|
||||
string destFileName = destFolder + "\\" + stair.HcdmClass + "-" + stair.HcdmNumber + ".xlsx";
|
||||
File.Copy(sourceFileName, destFileName, true);
|
||||
FileInfo fi = new FileInfo(destFileName);
|
||||
using (ExcelPackage package = new ExcelPackage(fi))
|
||||
{
|
||||
var worksheet = package.Workbook.Worksheets[1];
|
||||
//var worksheet = package.Workbook.Worksheets["基本构件"];
|
||||
|
||||
//构件标准名称
|
||||
worksheet.Cells["G2"].Value = stair.Name;
|
||||
worksheet.Cells["G3"].Value = stair.HcdmClass;
|
||||
worksheet.Cells["G4"].Value = stair.HcdmClass + "-" + stair.HcdmNumber;
|
||||
|
||||
worksheet.Cells["H14"].Value = stair.Runs[0].Xl;
|
||||
worksheet.Cells["H15"].Value = stair.Runs[0].Yw;
|
||||
worksheet.Cells["H16"].Value = stair.Runs[0].Zh;
|
||||
worksheet.Cells["H17"].Value = stair.Runs[0].DegreesWithXAxis;
|
||||
worksheet.Cells["H18"].Value = stair.Runs[0].Length;
|
||||
worksheet.Cells["H19"].Value = stair.Runs[0].Width;
|
||||
worksheet.Cells["H20"].Value = stair.Runs[0].Height;
|
||||
worksheet.Cells["H21"].Value = stair.Runs[0].Thickness;
|
||||
worksheet.Cells["H22"].Value = stair.Runs[0].NumberOfRisers;
|
||||
|
||||
worksheet.Cells["H23"].Value = stair.Landing.Xl;
|
||||
worksheet.Cells["H24"].Value = stair.Landing.Yw;
|
||||
worksheet.Cells["H25"].Value = stair.Landing.Zh;
|
||||
worksheet.Cells["H26"].Value = stair.Landing.Length;
|
||||
worksheet.Cells["H27"].Value = stair.Landing.Width;
|
||||
worksheet.Cells["H28"].Value = stair.Landing.Thickness;
|
||||
|
||||
worksheet.Cells["H29"].Value = stair.Runs[1].Xl;
|
||||
worksheet.Cells["H30"].Value = stair.Runs[1].Yw;
|
||||
worksheet.Cells["H31"].Value = stair.Runs[1].Zh;
|
||||
worksheet.Cells["H32"].Value = stair.Runs[1].DegreesWithXAxis;
|
||||
worksheet.Cells["H33"].Value = stair.Runs[1].Length;
|
||||
worksheet.Cells["H34"].Value = stair.Runs[1].Width;
|
||||
worksheet.Cells["H35"].Value = stair.Runs[1].Height;
|
||||
worksheet.Cells["H36"].Value = stair.Runs[1].Thickness;
|
||||
worksheet.Cells["H37"].Value = stair.Runs[1].NumberOfRisers;
|
||||
|
||||
|
||||
|
||||
|
||||
package.Save();
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user