2011-06-24 34 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"作爲字符串。如果應用程序要進行本地化,這將非常有用。