Revit 2011 получи длину стены - PullRequest
1 голос
/ 24 июня 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 Ответ

1 голос
/ 24 июня 2011

AsString() предполагает, что параметр имеет строковый тип (Parameter.StorageType == StorageType.String). Этот параметр длины является измерением двойной длины. Так что AsDouble() должно работать. Или вы можете использовать AsValueString() для преобразования значения в строку с единицами измерения, как это будет видно в пользовательском интерфейсе.

Вы также можете переключиться на использование BuiltInParameter.CURVE_ELEM_LENGTH вместо "Length" в качестве строки. Это было бы полезно, если бы приложение было локализовано.

...