2025-02-10 20:53:40 +08:00
|
|
|
|
using System.ComponentModel;
|
2025-07-11 09:20:23 +08:00
|
|
|
|
|
2024-09-22 11:05:41 +08:00
|
|
|
|
using Autodesk.Revit.DB;
|
|
|
|
|
|
|
2025-04-24 20:56:44 +08:00
|
|
|
|
namespace ShrlAlgoToolkit.Revit.Assists;
|
2024-09-22 11:05:41 +08:00
|
|
|
|
/// <summary>
|
2025-07-11 09:20:23 +08:00
|
|
|
|
/// 复制粘贴选项时处理重复类型名称的处理程序。
|
2024-09-22 11:05:41 +08:00
|
|
|
|
/// </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>
|
2025-07-11 09:20:23 +08:00
|
|
|
|
///
|
2024-09-22 11:05:41 +08:00
|
|
|
|
/// </summary>
|
2025-07-11 09:20:23 +08:00
|
|
|
|
/// <param name="args"></param>
|
|
|
|
|
|
/// <returns></returns>
|
2024-09-22 11:05:41 +08:00
|
|
|
|
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
|
|
|
|
public DuplicateTypeAction OnDuplicateTypeNamesFound(DuplicateTypeNamesHandlerArgs args) => duplicateTypeAction;
|
|
|
|
|
|
}
|