问题:
要取某个FamilySymbol的所有属性的值,现在已经把属性对象取到了(parameter类的一个实例),发现其中有AsDouble(),AsString(),AsInteger()等方法,通过什么方法能知道我应该调用哪一个函数呢
答:
Revit的读取参数值的方法都是Parameter类下面的函数中,包括如下这些:
AsDouble ()
AsElementId()
AsInteger()
AsString()
AsValueString()
如何使用它们可能有点困扰。这里简单说一下它们的用法。
前面四个函数的用法类型,我们只需要从Parameter.StorageType 获取其值存储的类型,安然调用相应的方法读取参数值即可。 很多时候我们的目标参数类型我们已经知道(因为我们知道我们在读取那个参数值)。
AsDouble ()
AsElementId()
AsInteger()
AsString()
下面是实例代码
public static string ParameterToString(Parameter param) { string val = "none"; if (param == null) { return val; } // To get to the parameter value, we need to pause it depending on its storage type switch (param.StorageType) { case StorageType.Double: double dVal = param.AsDouble(); val = dVal.ToString(); break; case StorageType.Integer: int iVal = param.AsInteger(); val = iVal.ToString(); break; case StorageType.String: string sVal = param.AsString(); val = sVal; break; case StorageType.ElementId: ElementId idVal = param.AsElementId(); val = idVal.IntegerValue.ToString(); break; case StorageType.None: break; } return val; }
还有一个函数 AsValueString(), 它会返回一个带单位的参数值。 获取的值可能用AsDouble,AsInteger一样,但是它的后面带有该参数在当前单位设置下的单位字符串。
转载请复制以下信息:
原文链接: http://blog.csdn.net/joexiongjin/article/details/17220183
作者: 叶雄进