using Autodesk.Revit.DB;
|
using Autodesk.Revit.DB.Plumbing;
|
using Autodesk.Revit.UI;
|
using HStation.RevitDev.Model.Enum;
|
using HStation.RevitDev.RevitDataExport.Common;
|
using System;
|
using System.Collections.Generic;
|
using System.IO;
|
using System.Linq;
|
|
namespace HStation.RevitDev.RevitDataExport.Utility
|
{
|
public class RevitUtil
|
{
|
public static List<PipeType> FindPipeTypes(Document doc)
|
{
|
FilteredElementCollector collector = new FilteredElementCollector(doc);
|
var pipeTypes = collector.OfClass(typeof(PipeType)).ToElements().Cast<PipeType>().ToList();
|
return pipeTypes;
|
}
|
|
public static void CleanPipeThumbnails()
|
{
|
try
|
{
|
var pipeDir = Path.Combine(GlobalResource.FamilysDirectory, RevitFamilyType.RFT_Pipe.GetDescription());
|
if (!Directory.Exists(pipeDir)) { return; }
|
var pngFiles = Directory.GetFiles(pipeDir, "*.png", SearchOption.TopDirectoryOnly);
|
foreach (var pngFile in pngFiles)
|
{
|
File.Delete(pngFile);
|
}
|
}
|
catch (Exception ex)
|
{
|
TaskDialog.Show("警告", $"管道缓存清理失败:{ex.Message}");
|
}
|
}
|
|
public static void SavePipeThumbnails(List<PipeType> pipeTypes)
|
{
|
var pipeDir = Path.Combine(GlobalResource.FamilysDirectory, RevitFamilyType.RFT_Pipe.GetDescription());
|
for (int i = 0; i < pipeTypes.Count; i++)
|
{
|
var pipeType = pipeTypes[i];
|
var pipeImg = pipeType.GetPreviewImage(new System.Drawing.Size(GlobalResource.ThumbnailSize, GlobalResource.ThumbnailSize));
|
pipeImg.Save(Path.Combine(pipeDir, $"{pipeType.Name}.png"));
|
}
|
}
|
}
|
}
|