43 lines
1.2 KiB
C#
43 lines
1.2 KiB
C#
|
|
namespace ShrlAlgo.Toolkit.Revit.Helpers;
|
|||
|
|
|
|||
|
|
public static class ParameterExtension
|
|||
|
|
{
|
|||
|
|
/// <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;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
var result = EncryptParameters.InvokeModule("ParamDef.setUserVisible", new object[] { parameterIntPtr, visible });
|
|||
|
|
|
|||
|
|
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;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|