Автоматическая расстановка dimensions на виде

Автор Тема: Автоматическая расстановка dimensions на виде  (Прочитано 1193 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн v13Автор темы

  • ADN OPEN
  • Сообщений: 23
  • Карма: 1
Здравствуйте, подскажите правильная ли у меня логика в создании скрипта. Начал создавать автоматическую расстановку dimensions на листе для внутренних инженерных сетей. Элементы на листе создаются но пересекаются между собой, я решил под каждым dimension создать некую невидимую surface и если точка расположения текста dimension.TextPosition попадает на такую поверхность, то XYZ из TextPosition смещается. И вот главный вопрос, каким лучше классом из revitAPI создать эту поверхность подкладку под dimension?

Оффлайн Александр Игнатович

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Элементы на листе создаются
Какие элементы?

создать некую невидимую surface
и
попадает на такую поверхность

тебе не кажется, что ты плодишь лишние ненужные сущности?

Оффлайн v13Автор темы

  • ADN OPEN
  • Сообщений: 23
  • Карма: 1
Под элементы класса dimension. Я уже готов на лишние сущности) сейчас пробую подложить под каждый dimension некий familyInstance. отсмотреть их геометрическое пересечение и в случае пресечения сдвинуть dimension.
Точнее так:
1) Создать классы, каждый класс содержит один dimension и familyinstance в виде площадки под него, площадка должна покрывать его геометрию
2) Проверить эти классы друг с другом на пересечение по свойству с familyinstance
3) При нахождении пересечения в одном из классов сдвигать textPosition в зависимости от ориентации по x или y на 2мм (высота текста)
4) Цикл повторять до тех пор пока пересечений не останется пересчений
5) Удаление всех созданных для подлжек familyInstance

Оффлайн v13Автор темы

  • ADN OPEN
  • Сообщений: 23
  • Карма: 1

Вот примерно по такому принципу

Подкладываю семейство под размер и отследить все пересечения по принципу пересечения solid'ов этих семейств, при обнаружении пересечения сдвигать dimension на высоту текста.

Если закопался в дебри, поправьте пожалуйста. В данный момент вижу только такой выход для корректного размещения dimension на листе