2025-02-10 20:53:40 +08:00
|
|
|
|
using System.ComponentModel;
|
2024-09-22 11:05:41 +08:00
|
|
|
|
using Autodesk.Revit.DB;
|
|
|
|
|
|
|
2025-02-10 20:53:40 +08:00
|
|
|
|
namespace ShrlAlgo.Toolkit.Revit.Helpers;
|
2024-09-22 11:05:41 +08:00
|
|
|
|
/// <summary>
|
2025-02-10 20:53:40 +08:00
|
|
|
|
/// <20><><EFBFBD><EFBFBD>Ԫ<EFBFBD>ش<EFBFBD><D8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
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
|
|
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
2025-02-10 20:53:40 +08:00
|
|
|
|
/// <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>µĴ<C2B5><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC><EFBFBD><EFBFBD><EFBFBD>а<EFBFBD><D0B0><EFBFBD> <see cref="DuplicateTypeAction.UseDestinationTypes"/>
|
2024-09-22 11:05:41 +08:00
|
|
|
|
/// </summary>
|
|
|
|
|
|
public DuplicateTypeNamesHandler() => duplicateTypeAction = DuplicateTypeAction.UseDestinationTypes;
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Creates a new handler
|
|
|
|
|
|
/// </summary>
|
2025-02-10 20:53:40 +08:00
|
|
|
|
/// <param name="action">һ<><D2BB><EFBFBD>ṹ<EFBFBD><E1B9B9><EFBFBD>ṩ<EFBFBD><E1B9A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD>͵<EFBFBD><CDB5><EFBFBD>Ϣ<EFBFBD><CFA2></param>
|
2024-09-22 11:05:41 +08:00
|
|
|
|
public DuplicateTypeNamesHandler(DuplicateTypeAction action) => duplicateTypeAction = action;
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Creates a new handler
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="actionHandler">
|
2025-02-10 20:53:40 +08:00
|
|
|
|
/// <20><>װ<EFBFBD><D7B0><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ṹ<EFBFBD><E1B9B9><EFBFBD>ṩ<EFBFBD><E1B9A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD>͵<EFBFBD><CDB5><EFBFBD>Ϣ<EFBFBD><CFA2>
|
2024-09-22 11:05:41 +08:00
|
|
|
|
/// </param>
|
|
|
|
|
|
public DuplicateTypeNamesHandler(Func<DuplicateTypeAction> actionHandler) => duplicateTypeAction = actionHandler();
|
|
|
|
|
|
|
|
|
|
|
|
private readonly DuplicateTypeAction duplicateTypeAction;
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
2025-02-10 20:53:40 +08:00
|
|
|
|
/// <20><>Ŀ<EFBFBD><C4BF><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>뱻<EFBFBD><EBB1BB><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>á<EFBFBD>
|
2024-09-22 11:05:41 +08:00
|
|
|
|
/// </summary>
|
2025-02-10 20:53:40 +08:00
|
|
|
|
/// <param name="args"><3E><><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD><CDB5><EFBFBD>Ϣ</param>
|
2024-09-22 11:05:41 +08:00
|
|
|
|
/// <returns>
|
2025-02-10 20:53:40 +08:00
|
|
|
|
/// Ҫ<><D2AA>ȡ<EFBFBD><C8A1><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD>ƾ<EFBFBD><C6BE><EFBFBD>Ψһ<CEA8><D2BB><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>ͻ<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2024-09-22 11:05:41 +08:00
|
|
|
|
/// </returns>
|
|
|
|
|
|
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
|
|
|
|
public DuplicateTypeAction OnDuplicateTypeNamesFound(DuplicateTypeNamesHandlerArgs args) => duplicateTypeAction;
|
|
|
|
|
|
}
|