using System.ComponentModel;
using Autodesk.Revit.DB;
namespace ShrlAlgo.Toolkit.Revit.Helpers;
///
/// ����Ԫ�ش�������
///
///
///
///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;
///
/// Creates a new handler
///
/// һ���ṹ���ṩ������ͼ����������Ŀ���ļ����Ѿ����ڵ����͵���Ϣ��
public DuplicateTypeNamesHandler(DuplicateTypeAction action) => duplicateTypeAction = action;
///
/// Creates a new handler
///
///
/// ��װ����һ���ṹ���ṩ������ͼ����������Ŀ���ļ����Ѿ����ڵ����͵���Ϣ��
///
public DuplicateTypeNamesHandler(Func actionHandler) => duplicateTypeAction = actionHandler();
private readonly DuplicateTypeAction duplicateTypeAction;
///
/// ��Ŀ���ļ������뱻���Ƶ�������ͬ���Ƶ�����ʱ�����á�
///
/// �����ظ������͵���Ϣ
///
/// Ҫ��ȡ���ж���ֻ���ƾ���Ψһ���Ƶ����ͻ�ȡ��������
///
[EditorBrowsable(EditorBrowsableState.Never)]
public DuplicateTypeAction OnDuplicateTypeNamesFound(DuplicateTypeNamesHandlerArgs args) => duplicateTypeAction;
}