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; }