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 { /// /// Revit执行命令 /// [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("提示", "所有构件参数添加成功。"); } } } }