添加项目文件。

This commit is contained in:
GG Z
2024-09-22 11:05:41 +08:00
parent fb5d55723a
commit 49ceaae6a8
764 changed files with 78850 additions and 0 deletions

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