Files

48 lines
1.2 KiB
C#
Raw Permalink Normal View History

2025-04-24 20:56:44 +08:00
using Autodesk.Revit.DB;
2025-04-24 20:56:10 +08:00
2026-02-21 16:31:24 +08:00
using ShrlAlgoToolkit.RevitCore.Assists;
2025-04-24 20:56:44 +08:00
using System.Reflection;
2026-02-21 16:31:24 +08:00
namespace ShrlAlgoToolkit.RevitCore.Extensions;
2025-04-24 20:56:44 +08:00
public static class ParameterExtensions
2025-04-24 20:56:10 +08:00
{
/// <summary>
/// 设置参数对象对用户是否可见.
/// </summary>
/// <param name="parameter"></param>
/// <param name="visible"></param>
/// <returns></returns>
public static bool SetVisibility(this Parameter parameter, bool visible)
{
var parameterIntPtr = parameter.ToParamDef();
if (parameterIntPtr == IntPtr.Zero)
{
return false;
}
2025-04-24 20:56:44 +08:00
var result = EncryptParameters.InvokeModule("ParamDef.setUserVisible", [parameterIntPtr, visible]);
2025-04-24 20:56:10 +08:00
return result;
}
/// <summary>
/// 将参数对象转为非托管指针.
/// </summary>
/// <param name="parameter"></param>
/// <returns></returns>
public static IntPtr ToParamDef(this Parameter parameter)
{
try
{
var m = typeof(Parameter).GetMethod("getParamDef", BindingFlags.NonPublic | BindingFlags.Instance);
return (m?.Invoke(parameter, null) as Pointer).ToIntPtr();
}
catch
{
return IntPtr.Zero;
}
}
}