添加项目文件。
This commit is contained in:
102
Szmedi.RevitToolkit.Approval/Extensions/ParameterExtensions.cs
Normal file
102
Szmedi.RevitToolkit.Approval/Extensions/ParameterExtensions.cs
Normal file
@@ -0,0 +1,102 @@
|
||||
using Autodesk.Revit.DB;
|
||||
|
||||
namespace Szmedi.RevitToolkit.Approval.Extensions
|
||||
{
|
||||
public static class ParameterExtensions
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取参数值
|
||||
/// </summary>
|
||||
/// <param name="parameter"></param>
|
||||
/// <returns></returns>
|
||||
public static object GetValue(this Parameter parameter)
|
||||
{
|
||||
if (parameter == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
object result = null;
|
||||
switch (parameter.StorageType)
|
||||
{
|
||||
case StorageType.None:
|
||||
break;
|
||||
|
||||
case StorageType.Integer:
|
||||
result = parameter.AsInteger();
|
||||
break;
|
||||
|
||||
case StorageType.Double:
|
||||
result = parameter.AsDouble();
|
||||
break;
|
||||
|
||||
case StorageType.String:
|
||||
//Revit数据库存储的值
|
||||
var str = parameter.AsString();
|
||||
if (string.IsNullOrEmpty(str))
|
||||
{
|
||||
//用户可见的前端显示,如根据单位设置而显示的值
|
||||
result = parameter.AsValueString();
|
||||
}
|
||||
else
|
||||
{
|
||||
result = str;
|
||||
}
|
||||
break;
|
||||
|
||||
case StorageType.ElementId:
|
||||
result = parameter.AsElementId();
|
||||
break;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
public static bool SetValue(this Parameter parameter, object value)
|
||||
{
|
||||
var result = false;
|
||||
if (parameter == null || value == null)
|
||||
{
|
||||
//throw new ArgumentException(nameof(parameter));
|
||||
return false;
|
||||
}
|
||||
if (!parameter.IsReadOnly)
|
||||
{
|
||||
switch (parameter.StorageType)
|
||||
{
|
||||
case StorageType.Integer:
|
||||
if (value is int i)
|
||||
{
|
||||
result = parameter.Set(i);
|
||||
}
|
||||
|
||||
break;
|
||||
case StorageType.Double:
|
||||
if (value is double d)
|
||||
{
|
||||
result = parameter.Set(d);
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case StorageType.String:
|
||||
if (value is string str)
|
||||
{
|
||||
result = parameter.Set(str);
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case StorageType.ElementId:
|
||||
if (value is ElementId id)
|
||||
{
|
||||
result = parameter.Set(id);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user