Tekla 2016 — Управляем внешним видом через TeklaAPI
В OpenAPI Tekla 2016 добавили новые фичи, про них и поговорим немного. Остановимся на ModelObjectVisualization из раздела Tekla.Structures.Model.UI. Этот класс предоставляет функционал по изменения параметров отрисовки элементов трехмерной модели в Текле.
Т.е. позволяет управлять цветом и прозрачностью элементов в видовом окне теклы.
Ниже небольшой листинг — управляем цветом и прозрачностью выделенных объектов сделаем их серыми и полупрозрачными.
Получается крайне удобно, и главное быстро. Можно забыть о такой штуке как Represenation. Особенно когда тебе нужно поуправлять цветом и прозрачностью здесь и сейчас, а не ждать пока новые настройки применятся ко всей модели.
Дополнительный бонус — теперь у нас есть вся цветовая панель RGB а не 16 стандартных прессетов. Можно разработать свой индивидуальный цветовой стиль. Если вдруг очень захочется. 😀
private void button_GrayTransparent(object sender, EventArgs e) { TSM.UI.ModelObjectSelector selected = new TSM.UI.ModelObjectSelector(); TSM.ModelObjectEnumerator manyO = (selected.GetSelectedObjects() as TSM.ModelObjectEnumerator); var Parts = new List<TSM.ModelObject>(); while (manyO.MoveNext()) { if ((manyO.Current as TSM.ModelObject) != null) { Parts.Add(manyO.Current as TSM.ModelObject); } } TSM.UI.ModelObjectVisualization.ClearAllTemporaryStates(); //Сбрасываем предыдущие var color = new TSM.UI.Color(0.5,0.5,0.5,0.3);//создаем цвет TSM.UI.ModelObjectVisualization.SetTemporaryState(Parts, color);//применяем к выделенным объектам }
Сборки правда изменить так не получится. А вот плитки, балки, болты — только в путь.
P.S. — Кстати, на картинке показан пример того как не надо делать узлы металлических конструкций. Кто может объяснить почему?
Я думаю, тут долго можно рассуждать почему так делать не надо. Одна коллизия уголков чего стоит…)
А что автор имел ввиду?
Есть тут задумка на основе выгрузки из базы данных текущего прогресса по конструкции — управлять видимостью и цветом отдельных позиций в модели.
В принципе это уже удалось реализовать в рамках Tekla Web View. А с новыми возможностями Tekla API все тоже самое, только еще лучше можно сделать и в самой Текле.