revit获取或设置参数
程序员文章站
2022-06-10 23:27:25
...
/// <summary>
/// 获取设置element参数服务
/// </summary>
public static class ParamUtils
{
#region get
public static string GetStringValue(this Element instance, BuiltInParameter builtInParameter)
{
string value = string.Empty;
if (instance != null)
{
Parameter para = instance.get_Parameter(builtInParameter);
if (para != null && para.StorageType == StorageType.String)
using (para)
value = para.AsString();
}
return value;
}
public static string GetStringValue(this Element instance, string strName)
{
string value = string.Empty;
if (instance != null && !string.IsNullOrEmpty(strName))
{
Parameter para = instance.LookupParameter(strName);
if (para != null && para.StorageType == StorageType.String)
using (para)
value = para.AsString();
}
return value;
}
public static ElementId GetElementId(this Element instance, BuiltInParameter builtInParameter)
{
ElementId value = ElementId.InvalidElementId;
if (instance != null)
{
Parameter para = instance.get_Parameter(builtInParameter);
if (para != null && para.StorageType == StorageType.ElementId)
using (para)
value = para.AsElementId();
}
return value;
}
public static ElementId GetElementId(this Element instance, string strName)
{
ElementId value = ElementId.InvalidElementId;
if (instance != null && !string.IsNullOrEmpty(strName))
{
Parameter para = instance.LookupParameter(strName);
if (para != null && para.StorageType == StorageType.ElementId)
using (para)
value = para.AsElementId();
}
return value;
}
public static double GetDoubleValue(this Element instance, BuiltInParameter builtInParameter)
{
double value = 0.0;
if (instance != null)
{
Parameter para = instance.get_Parameter(builtInParameter);
if (para != null && para.StorageType == StorageType.Double)
using (para)
value = para.AsDouble();
}
return value;
}
public static string GetValueAsString(this Element instance, BuiltInParameter builtInParameter, FormatOptions formatOptions = null)
{
string value = string.Empty;
if (instance != null)
{
Parameter para = instance.get_Parameter(builtInParameter);
if (para != null)
using (para)
value = formatOptions == null ? para.AsValueString() : para.AsValueString(formatOptions);
}
return value;
}
public static string GetValueAsString(this Element instance, string strName, FormatOptions formatOptions = null)
{
string value = string.Empty;
if (instance != null)
{
Parameter para = instance.LookupParameter(strName);
if (para != null)
using (para)
value = formatOptions == null ? para.AsValueString() : para.AsValueString(formatOptions);
}
return value;
}
public static int GetInteger(this Element instance, BuiltInParameter builtInParameter)
{
int value = 0;
if (instance != null)
{
Parameter para = instance.get_Parameter(builtInParameter);
if (para != null && para.StorageType == StorageType.Integer)
using (para)
value = para.AsInteger();
}
return value;
}
public static int GetInteger(this Element instance, string strName)
{
int value = 0;
if (instance != null && !string.IsNullOrEmpty(strName))
{
Parameter para = instance.LookupParameter(strName);
if (para != null && para.StorageType == StorageType.Integer)
using (para)
value = para.AsInteger();
}
return value;
}
public static double GetDoubleValue(this Element instance, string strName)
{
double value = 0.0;
if (instance != null && !string.IsNullOrEmpty(strName))
{
Parameter para = instance.LookupParameter(strName);
if (para != null && para.StorageType == StorageType.Double)
using (para)
value = para.AsDouble();
}
return value;
}
#endregion
#region set
public static void SetDoubleValue(this Element instance, BuiltInParameter builtInParameter, double value)
{
if (instance != null)
{
var param = instance.get_Parameter(builtInParameter);
if (
param != null &&
param.StorageType == StorageType.Double &&
!param.IsReadOnly)
using (param)
param.Set(value);
}
}
public static void SetDoubleValue(this Element instance, string strName, double value)
{
if (instance != null && !string.IsNullOrEmpty(strName))
{
var param = instance.LookupParameter(strName);
if (
param != null &&
param.StorageType == StorageType.Double &&
!param.IsReadOnly)
using (param)
param.Set(value);
}
}
public static void SetInteger(this Element instance, string strName, int value)
{
if (instance != null && !string.IsNullOrEmpty(strName))
{
var param = instance.LookupParameter(strName);
if (
param != null &&
param.StorageType == StorageType.Integer &&
!param.IsReadOnly)
using (param)
param.Set(value);
}
}
public static void SetStringValue(this Element instance, string strName, string value)
{
if (instance != null && !string.IsNullOrEmpty(strName))
{
var param = instance.LookupParameter(strName);
if (
param != null &&
param.StorageType == StorageType.String &&
!param.IsReadOnly)
using (param)
param.Set(value);
}
}
public static void SetStringValue(this Element instance, BuiltInParameter builtInParameter, string value)
{
if (instance != null)
{
var param = instance.get_Parameter(builtInParameter);
if (
param != null &&
param.StorageType == StorageType.String &&
!param.IsReadOnly)
using (param)
param.Set(value);
}
}
public static void SetInteger(this Element instance, BuiltInParameter builtInParameter, int value)
{
if (instance != null)
{
var param = instance.get_Parameter(builtInParameter);
if (
param != null &&
param.StorageType == StorageType.Integer &&
!param.IsReadOnly)
using (param)
param.Set(value);
}
}
public static void SetElmentId(this Element instance, BuiltInParameter builtInParameter, ElementId value)
{
if (instance != null)
{
var param = instance.get_Parameter(builtInParameter);
if (
param != null &&
param.StorageType == StorageType.ElementId &&
!param.IsReadOnly)
using (param)
param.Set(value);
}
}
public static void SetElmentId(this Element instance, string strName, ElementId value)
{
if (instance != null && !string.IsNullOrEmpty(strName))
{
var param = instance.LookupParameter(strName);
if (
param != null &&
param.StorageType == StorageType.ElementId &&
!param.IsReadOnly)
using (param)
param.Set(value);
}
}
#endregion
}
操作构件时,一般需要设置或者读取其参数,如上是作者封装的操作类,供大家参考。
上一篇: cesium for ue4 设置参考点
下一篇: Revit API 移动元素