添加项目文件。
This commit is contained in:
51
Sai.Toolkit.Revit/Helpers/DuplicateTypeNamesHandler.cs
Normal file
51
Sai.Toolkit.Revit/Helpers/DuplicateTypeNamesHandler.cs
Normal file
@@ -0,0 +1,51 @@
|
||||
using Autodesk.Revit.DB;
|
||||
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
|
||||
|
||||
namespace Sai.Toolkit.Revit.Helpers;
|
||||
/// <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
|
||||
{
|
||||
/// <summary>
|
||||
/// 创建一个新的处理程序,默认其中包括 <see cref="DuplicateTypeAction.UseDestinationTypes"/>
|
||||
/// </summary>
|
||||
public DuplicateTypeNamesHandler() => duplicateTypeAction = DuplicateTypeAction.UseDestinationTypes;
|
||||
|
||||
/// <summary>
|
||||
/// Creates a new handler
|
||||
/// </summary>
|
||||
/// <param name="action">一个结构,提供关于试图复制名称在目标文件中已经存在的类型的信息。</param>
|
||||
public DuplicateTypeNamesHandler(DuplicateTypeAction action) => duplicateTypeAction = action;
|
||||
|
||||
/// <summary>
|
||||
/// Creates a new handler
|
||||
/// </summary>
|
||||
/// <param name="actionHandler">
|
||||
/// 封装了在一个结构,提供关于试图复制名称在目标文件中已经存在的类型的信息。
|
||||
/// </param>
|
||||
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;
|
||||
}
|
||||
Reference in New Issue
Block a user