2011-06-24 38 views
1

是否有人获得任何代码来获得墙的长度?目前我使用:Revit 2011获取墙的长度

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

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

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