Files
Shrlalgo.RvKits/ShrlAlgoToolkit.Revit/Assists/DuplicateTypeNamesHandler.cs
ShrlAlgo 4d35cadb56 更新
2025-07-11 09:20:23 +08:00

33 lines
1.4 KiB
C#

using System.ComponentModel;
using Autodesk.Revit.DB;
namespace ShrlAlgoToolkit.Revit.Assists;
/// <summary>
/// 复制粘贴选项时处理重复类型名称的处理程序。
/// </summary>
/// <example>
///<c>
///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);</c>
/// </example>
public class DuplicateTypeNamesHandler : IDuplicateTypeNamesHandler
{
public DuplicateTypeNamesHandler() => duplicateTypeAction = DuplicateTypeAction.UseDestinationTypes;
public DuplicateTypeNamesHandler(DuplicateTypeAction action) => duplicateTypeAction = action;
public DuplicateTypeNamesHandler(Func<DuplicateTypeAction> actionHandler) => duplicateTypeAction = actionHandler();
private readonly DuplicateTypeAction duplicateTypeAction;
/// <summary>
///
/// </summary>
/// <param name="args"></param>
/// <returns></returns>
[EditorBrowsable(EditorBrowsableState.Never)]
public DuplicateTypeAction OnDuplicateTypeNamesFound(DuplicateTypeNamesHandlerArgs args) => duplicateTypeAction;
}