В Revit 2017 был расширен список элементов модели, у которых в спецификацию и марку может быть выведена высотная отметка их низа и верха. Но у колонн такой возможности нет.
Тем не менее, бывает задача указать отметку верха и низа колонны, например, на схеме расположения колонн.

Написал небольшой макрос для решения этой задачи.
Предварительно следует создать общие параметры проекта, тип данных — «Длина», по экземпляру, для категории «Несущие колонны»:

Общие параметры я использовал из файла общих параметров шаблона Weandrevit 2017.
Скопируйте код макроса и создайте макрос по инструкции.
В начале кода макроса укажите имена параметров, в которые будет записываться значение.
Результат:

Работает на любой версии Revit.
Приложение получает параметры «Базовый уровень» и «Смещение от уровня», а не сами точки геометрии, поэтому отметка может получиться некорректной, если, например, использовалось «Присоединение верха» колонны. Можно переписать макрос, чтобы он получал именно самую верхнюю и самую нижнюю точку геометрии, но пока так.
Пробный проект (Revit 2015):
Код макроса для копирования:
public void StartCalculateColumnElevation() { Document doc = this.ActiveUIDocument.Document; string parameterBaseElevation = "Рзм.ОтметкаРасположения"; string parameterTopElevation = "Рзм.ОтметкаВерха"; List<Element> cols = new FilteredElementCollector(doc) .OfCategory(BuiltInCategory.OST_StructuralColumns) .WhereElementIsNotElementType() .ToElements() .ToList(); int count = 0; int errorCount = 0; using(Transaction t = new Transaction(doc)) { t.Start("Colums elevation"); foreach(Element col in cols) { try { ElementId baseLevelId = col.get_Parameter(BuiltInParameter.SCHEDULE_BASE_LEVEL_PARAM).AsElementId(); Level baseLevel = doc.GetElement(baseLevelId) as Level; double baseLevelHeigth = baseLevel.Elevation; double baseOffset = col.get_Parameter(BuiltInParameter.SCHEDULE_BASE_LEVEL_OFFSET_PARAM).AsDouble(); double baseElev = baseLevelHeigth + baseOffset; ElementId topLevelId = col.get_Parameter(BuiltInParameter.SCHEDULE_TOP_LEVEL_PARAM).AsElementId(); Level topLevel = doc.GetElement(topLevelId) as Level; double topLevelHeigth = topLevel.Elevation; double topOffset = col.get_Parameter(BuiltInParameter.SCHEDULE_TOP_LEVEL_OFFSET_PARAM).AsDouble(); double topElev = topLevelHeigth + topOffset; col.LookupParameter(parameterBaseElevation).Set(baseElev); col.LookupParameter(parameterTopElevation).Set(topElev); count++; } catch { errorCount++; } } t.Commit(); } TaskDialog.Show("Отметки колонн", "Обработано колонн: " + count + ", ошибок: " + errorCount); }
Названия параметров можете поменять под свой проект.
UPD: также эту же задачу выполняет плагин «Определить отметки» из Bim-Starter.