ADN Club => Revit API => Тема начата: Павел55 от 19-03-2022, 15:35:38
Название: Как изменить высоту строк ScheduleSheetInstance
Отправлено: Павел55 от 19-03-2022, 15:35:38
Добрый день, подскажите существует способ менять высоту строк в спецификации на листе? Я попытался менять в TableData в секции Body, но там запрещено менять высоту. Я так понимаю можно только в заголовке менять. Отсюда вопрос может быть кто то когда нибудь создавал какие то костыли чтобы это обойти?
Название: Re: Как изменить высоту строк ScheduleSheetInstance
Отправлено: Александр Игнатович от 19-03-2022, 15:49:46
Смотря каких :-) то есть только тех, высоту которых можно изменить в UI.
Изменяется высота, соответственно не в ScheduleSheetInstance, а через сам ViewSchedule. Получаешь данные таблицы:
Может быть возможно придумать какой нибудь дикий велосипед? У меня что то совсем мыслей нет, как обмануть ревит апи.
Название: Re: Как изменить высоту строк ScheduleSheetInstance
Отправлено: Александр Игнатович от 19-03-2022, 16:02:55
Да, есть такое, у обычных спецификаций высоту строк нельзя менять ни в UI ни с использованием API :-[
Как вариант (кривой, конечно, понимаю), на чертёжном виде нарисовать линиями и текстом...
Название: Re: Как изменить высоту строк ScheduleSheetInstance
Отправлено: Павел55 от 19-03-2022, 16:08:34
Тут тоже нюанс есть. Как узнать какую высоту строк делать для текста? Брать BoundingBox для каждого текста и высчитывать по самому высокому тексту для всей строки?
Название: Re: Как изменить высоту строк ScheduleSheetInstance
Отправлено: Александр Игнатович от 20-03-2022, 10:52:56
Ну поскольку ширину ты задашь при создании TextNote-а, то да, нужна высота. Решить можно, сначала накидав TextNote-ов, например в (0, 0, 0), вызвать doc.Regenerate(), после которого станут доступны реальные габариты, после чего посчитать позиции и ElementTransformUtils.MoveElement-ом переместить в нужные позиции и дорисовать линии