using System.ComponentModel; using Autodesk.Revit.DB; namespace ShrlAlgoToolkit.Revit.Assists; /// /// 复制粘贴选项时处理重复类型名称的处理程序。 /// /// /// ///var options = new CopyPasteOptions(); ///options.SetDuplicateTypeNamesHandler(new DuplicateTypeNamesHandler()); ///options.SetDuplicateTypeNamesHandler(new DuplicateTypeNamesHandler(() => DuplicateTypeAction.Abort)); ///options.SetDuplicateTypeNamesHandler(new DuplicateTypeNamesHandler(DuplicateTypeAction.UseDestinationTypes)); ///ElementTransformUtils.CopyElements(source, elementIds, destination, null, options); /// public class DuplicateTypeNamesHandler : IDuplicateTypeNamesHandler { public DuplicateTypeNamesHandler() => duplicateTypeAction = DuplicateTypeAction.UseDestinationTypes; public DuplicateTypeNamesHandler(DuplicateTypeAction action) => duplicateTypeAction = action; public DuplicateTypeNamesHandler(Func actionHandler) => duplicateTypeAction = actionHandler(); private readonly DuplicateTypeAction duplicateTypeAction; /// /// /// /// /// [EditorBrowsable(EditorBrowsableState.Never)] public DuplicateTypeAction OnDuplicateTypeNamesFound(DuplicateTypeNamesHandlerArgs args) => duplicateTypeAction; }