69 lines
2.3 KiB
C#
69 lines
2.3 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Diagnostics;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Text.RegularExpressions;
|
|
using System.Windows;
|
|
using System.Windows.Interop;
|
|
using System.Windows.Media;
|
|
|
|
using Autodesk.Revit.Attributes;
|
|
using Autodesk.Revit.DB;
|
|
using Autodesk.Revit.DB.Architecture;
|
|
using Autodesk.Revit.DB.Structure;
|
|
using Autodesk.Revit.UI;
|
|
using Autodesk.Windows;
|
|
|
|
using Nice3point.Revit.Toolkit.External;
|
|
|
|
//using Szmedi.Toolkit.Assists;
|
|
|
|
|
|
|
|
namespace Szmedi.Test
|
|
{
|
|
[Transaction(TransactionMode.Manual)]
|
|
internal class RevitAddin : ExternalCommand
|
|
{
|
|
public override void Execute()
|
|
{
|
|
Array builtInCategories = Enum.GetValues(typeof(BuiltInCategory));
|
|
StringBuilder sb = new StringBuilder();
|
|
var encoding = Encoding.GetEncoding(936);
|
|
var str = File.ReadAllText(@"E:\Users\Zhanggg\Downloads\exportlayers-dwg-SZMEDI.txt", encoding);
|
|
foreach (BuiltInCategory cate in builtInCategories)
|
|
{
|
|
try
|
|
{
|
|
var name = Enum.GetName(typeof(BuiltInCategory), cate).Remove(0, 4);
|
|
var category = Document.Settings.Categories.get_Item(cate);
|
|
|
|
//var category = Category.GetCategory(Document, cate);
|
|
// 使用正则表达式进行全字匹配替换
|
|
str = Regex.Replace(
|
|
str,
|
|
$@"\b{Regex.Escape(name)}\b", // 自动处理特殊字符
|
|
category.Name,
|
|
RegexOptions.None); // 可选:是否区分大小写
|
|
|
|
//str = str.Replace(name, category.Name);
|
|
//if (category != null
|
|
// && category.CategoryType == CategoryType.FacilityNumber && category.AllowsBoundParameters)
|
|
//{
|
|
// sb.AppendLine($"{category.Name},{Enum.GetName(typeof(BuiltInCategory), cate)},");
|
|
//}
|
|
}
|
|
catch (Exception)
|
|
{
|
|
}
|
|
}
|
|
File.WriteAllText(@"E:\Users\Zhanggg\Downloads\exportlayers-dwg-SZMEDI-Result.txt", str, encoding);
|
|
|
|
//LogAssists.WriteTxtFile("内建类别", sb.ToString());
|
|
}
|
|
|
|
}
|
|
}
|