Revit 2011获得了一堵墙的长度

时间:2011-06-24 14:54:40

标签: c# revit

有没有人有任何代码可以获得墙的长度?目前我使用:

ElementCategoryFilter wallsFilter = 
  new ElementCategoryFilter(BuiltInCategory.OST_Walls);

FilteredElementCollector collector = new FilteredElementCollector(Doc);
IList<Element> walls =
  collector.WherePasses(wallsFilter).WhereElementIsNotElementType().ToElements();

foreach (Element wall in walls)
  MessageBox.Show(wall.get_Parameter("Length").AsString());

长度空了!!!

1 个答案:

答案 0 :(得分:1)

AsString()假定参数是字符串类型(Parameter.StorageType == StorageType.String)。该长度参数是双倍长度测量。所以AsDouble()应该有效。或者,您可以使用AsValueString()将值转换为带有单位的字符串,如UI中所示。

您也可以切换为使用BuiltInParameter.CURVE_ELEM_LENGTH而不是"Length"作为字符串。如果要对应用程序进行本地化,这将非常有用。