1

有没有人有任何代码来获取墙的长度?目前我使用:

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());

长度返回为空!!!

4

1 回答 1

1

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

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

于 2011-06-24T19:32:55.707 回答