namespace ShrlAlgo.Toolkit.Revit.Helpers;
public static class ParameterExtension
{
///
/// 设置参数对象对用户是否可见.
///
///
///
///
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;
}
///
/// 将参数对象转为非托管指针.
///
///
///
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;
}
}
}