Files

66 lines
2.2 KiB
C#
Raw Permalink Normal View History

2025-09-16 16:06:41 +08:00
using System.Text;
using Autodesk.Revit.Attributes;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
using Autodesk.Revit.UI.Selection;
using Nice3point.Revit.Toolkit.External;
namespace Szmedi.RevitToolkit.Approval.Commands
{
/// <summary>
/// Revit执行命令
/// </summary>
[Transaction(TransactionMode.Manual)]
[Regeneration(RegenerationOption.Manual)]
public class AddMetroParametersCmd : ExternalCommand
{
public override void Execute()
{
StringBuilder sb = new StringBuilder();
var allElements = Document.OfAllModelCollector();
if (allElements == null)
{
return;
}
var elements = allElements.DistinctBy(e => e.Category.Id);
var sharedParameters = GlobalAssists.GetMetroSharedParameters();
Document.InvokeGroup(
tg =>
{
Document.Invoke(
ts =>
{
foreach (var elem in elements)
{
var sign = elem.LookupParameter("深圳构件标识");
if (sign == null)
{
sb.AppendLine($"构件 {elem.Id} 构件名 {elem.Name} 没有找到标识参数,请检查。");
continue;
}
if (sign != null)
{
var value = sign.GetValue()?.ToString();
var paramsToAdd = GlobalAssists.GetMetroSignParameters(value);
SharedParameterAssists.AddMetroParameters(elem, paramsToAdd, sharedParameters);
}
}
});
},
"添加轨道交通工程参数");
if (sb.Length > 0)
{
TaskDialog.Show("提示", sb.ToString());
}
else
{
TaskDialog.Show("提示", "所有构件参数添加成功。");
}
}
}
}