Files
2025-09-16 16:06:41 +08:00

90 lines
2.5 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Autodesk.Revit.DB;
using Szmedi.Toolkit.Revit.Approval;
namespace Szmedi.RevitToolkit.Approval.Assists
{
internal static class ParameterAssists
{
/// <summary>
/// 获取标识
/// </summary>
/// <param name="e"></param>
/// <returns></returns>
public static string GetIdProperty(this Element e)
{
var list = e.GetParameters("深圳构件标识");
var str = string.Empty;
if (list.Count > 0)
{
foreach (var param in list)
{
if (param.AsString() != string.Empty)
{
str = param.AsString();
}
}
return str == string.Empty ? "未填写标识" : str;
}
return "未定义标识";
}
///// <summary>
///// 公式计算结果
///// </summary>
///// <param name="formula"></param>
///// <param name="parameters"></param>
///// <returns></returns>
//public static double EvaluateFormula(string formula, Dictionary<string, object> parameters)
//{
// double result = default;
// try
// {
// var e = new NCalc.Expression(formula);
// e.Parameters = parameters;
// var obj = e.Evaluate();
// result = Convert.ToDouble(obj);
// }
// catch (Exception ex)
// {
// }
// return result;
//}
public static ParameterType GetParameterType(this MetroCommonParameter property)
{
if (property.ParamType == "文本")
{
return ParameterType.Text;
}
else if (property.ParamType == "数值")
{
if (property.Unit == "mm")
{
return ParameterType.Length;
}
else if (property.Unit is "年" or "月" or "日")
{
return ParameterType.Integer;
}
else if (property.Unit is "元" or "万元")
{
return ParameterType.Currency;
}
return ParameterType.Number;
}
return ParameterType.Text;
}
}
}