⚙️ Подключение библиотек Tekla API в C#|
Tekla Structures — это мощная BIM-система для 3D-моделирования, которую активно используют в строительстве и проектировании.
Один из её больших плюсов — API, позволяющий автоматизировать рутину и интегрировать Tekla с другими приложениями.
Разберёмся, как подключить библиотеки Tekla API в C# и запустить первый код.
🟢 Шаг 1. Установка Tekla Structures
API работает только вместе с установленной программой. Без установленной Tekla вы не сможете запустить свой код.
🟢 Шаг 2. Совпадение версий библиотек
Очень важно, чтобы версия библиотек, подключённых в проект, совпадала с версией Tekla Structures.
Иначе возможны ошибки — от устаревших функций до несовместимости методов.
👉 Рекомендации:
Проверьте версию Tekla в Справка → О программе.
Подключайте именно те .
После разработки обязательно тестируйте плагин в той же версии Tekla.
Читайте документацию к API для своей версии — там есть список изменений.
🟢 Шаг 3. Настройка окружения
Используем .NET Framework 4.7.2+.
IDE: лучше всего Visual Studio.
Создаём проект типа Console App (.NET Framework).
🟢 Шаг 4. Подключение библиотек
В Visual Studio:
Откройте Solution Explorer.
ПКМ по References → Add Reference.
Укажите нужные
В коде добавьте:
🟢 Шаг 5. Первый код
Пример создания балки в Tekla API:
🟢 Шаг 6. Запуск проекта
Запустите Tekla Structures.
Запустите консольное приложение.
В модели появится новый элемент 🎉
🚀 Вот ты и встал на путь профессионального разработчика Tekla API.
#nipgroup #Tekla #TeklaSupport #TeklaHelp #TeklaAPI
Tekla Structures — это мощная BIM-система для 3D-моделирования, которую активно используют в строительстве и проектировании.
Один из её больших плюсов — API, позволяющий автоматизировать рутину и интегрировать Tekla с другими приложениями.
Разберёмся, как подключить библиотеки Tekla API в C# и запустить первый код.
🟢 Шаг 1. Установка Tekla Structures
API работает только вместе с установленной программой. Без установленной Tekla вы не сможете запустить свой код.
🟢 Шаг 2. Совпадение версий библиотек
Очень важно, чтобы версия библиотек, подключённых в проект, совпадала с версией Tekla Structures.
Иначе возможны ошибки — от устаревших функций до несовместимости методов.
👉 Рекомендации:
Проверьте версию Tekla в Справка → О программе.
Подключайте именно те .
dll
, которые лежат в C:\Program Files\Tekla Structures\<версия>\bin
.После разработки обязательно тестируйте плагин в той же версии Tekla.
Читайте документацию к API для своей версии — там есть список изменений.
🟢 Шаг 3. Настройка окружения
Используем .NET Framework 4.7.2+.
IDE: лучше всего Visual Studio.
Создаём проект типа Console App (.NET Framework).
🟢 Шаг 4. Подключение библиотек
В Visual Studio:
Откройте Solution Explorer.
ПКМ по References → Add Reference.
Укажите нужные
dll
:Tekla.Structures.Model.dll
Tekla.Structures.Drawing.dll
Tekla.Structures.Customization.dll
В коде добавьте:
using Tekla.Structures.Model;
using Tekla.Structures.Drawing;
using Tekla.Structures.Customization;
🟢 Шаг 5. Первый код
Пример создания балки в Tekla API:
using System;
using Tekla.Structures.Model;
class Program
{
static void Main(string[] args)
{
Model model = new Model();
if (!model.GetConnectionStatus())
{
Console.WriteLine("Model is not opened.");
return;
}
Beam beam = new Beam(
new Tekla.Structures.Geometry3d.Point(0, 0, 0),
new Tekla.Structures.Geometry3d.Point(1000, 0, 0)
);
beam.Material = new Material("Steel");
beam.Name = "New Beam";
if (beam.Insert())
Console.WriteLine("Beam successfully added!");
else
Console.WriteLine("Failed to add beam.");
model.CommitChanges();
}
}
🟢 Шаг 6. Запуск проекта
Запустите Tekla Structures.
Запустите консольное приложение.
В модели появится новый элемент 🎉
🚀 Вот ты и встал на путь профессионального разработчика Tekla API.
#nipgroup #Tekla #TeklaSupport #TeklaHelp #TeklaAPI
🔥8⚡1👍1
Пример использования класса ViewHandler в Tekla API C#
В этом примере мы разберём, как работать с представлениями модели в Tekla Structures с помощью класса ViewHandler.
Мы:
🔹 установим стандартное представление,
🔹 получим все доступные виды,
🔹 выполним их отображение, перерисовку и скрытие.
🧩 Код примера
// Устанавливаем стандартное представление для объектов модели.
// Получаем перечислитель всех видов в модели.
// Перебираем все виды в модели.
// Получаем текущий вид.
// Отображаем текущий вид.
// Перерисовываем текущий вид.
// Скрываем текущий вид.
📖 Объяснение кода
1️⃣ Установка представления
👉 Сначала задаём стандартное отображение объектов модели. Это базовый стиль, с которым удобно начинать.
2️⃣ Получение всех видов
👉 Метод GetAllViews() возвращает перечислитель для обхода всех видов модели.
3️⃣ Перебор видов
👉 С помощью
4️⃣ Отображение и перерисовка
👉 Сначала показываем вид (
Это гарантирует актуальное отображение.
5️⃣ Скрытие вида
👉 Когда вид больше не нужен — убираем его из отображения.
✅ Заключение
Этот пример демонстрирует базовые операции с классом ViewHandler:
⚙️ установка представления,
👀 отображение,
🔄 перерисовка,
🙈 скрытие.
📌 Такие действия помогают разработчикам управлять визуализацией проекта в Tekla Structures и делают работу с моделью более удобной и наглядной
#nipgroup #Tekla #TeklaSupport #TeklaHelp #TeklaAPI
В этом примере мы разберём, как работать с представлениями модели в Tekla Structures с помощью класса ViewHandler.
Мы:
🔹 установим стандартное представление,
🔹 получим все доступные виды,
🔹 выполним их отображение, перерисовку и скрытие.
🧩 Код примера
using Tekla.Structures.Model.UI;
public class Example
{
public void Example1()
{
// Устанавливаем стандартное представление для объектов модели.
ViewHandler.SetRepresentation("standard");
// Получаем перечислитель всех видов в модели.
ModelViewEnumerator viewEnum = ViewHandler.GetAllViews();
// Перебираем все виды в модели.
while (viewEnum.MoveNext())
{
// Получаем текущий вид.
View viewSel = viewEnum.Current;
// Отображаем текущий вид.
ViewHandler.ShowView(viewSel);
// Перерисовываем текущий вид.
ViewHandler.RedrawView(viewSel);
// Скрываем текущий вид.
ViewHandler.HideView(viewSel);
}
}
}
📖 Объяснение кода
1️⃣ Установка представления
ViewHandler.SetRepresentation("standard");
👉 Сначала задаём стандартное отображение объектов модели. Это базовый стиль, с которым удобно начинать.
2️⃣ Получение всех видов
ModelViewEnumerator viewEnum =
ViewHandler.GetAllViews();
👉 Метод GetAllViews() возвращает перечислитель для обхода всех видов модели.
3️⃣ Перебор видов
while (viewEnum.MoveNext())
{
View viewSel = viewEnum.Current;
}
👉 С помощью
MoveNext()
последовательно проходим по каждому виду.4️⃣ Отображение и перерисовка
ViewHandler.ShowView(viewSel);
ViewHandler.RedrawView(viewSel);
👉 Сначала показываем вид (
ShowView()
), затем обновляем его (RedrawView()
). Это гарантирует актуальное отображение.
5️⃣ Скрытие вида
ViewHandler.HideView(viewSel);
👉 Когда вид больше не нужен — убираем его из отображения.
✅ Заключение
Этот пример демонстрирует базовые операции с классом ViewHandler:
⚙️ установка представления,
👀 отображение,
🔄 перерисовка,
🙈 скрытие.
📌 Такие действия помогают разработчикам управлять визуализацией проекта в Tekla Structures и делают работу с моделью более удобной и наглядной
#nipgroup #Tekla #TeklaSupport #TeklaHelp #TeklaAPI
👍8
Tekla API C# Использование CoordinateSystem и MatrixFactory
💡 В Tekla Structures всё, что вы видите на экране — живёт в своей системе координат. Если вы хотите точно управлять положением объектов, нужно уметь работать с CoordinateSystem.
🧭 CoordinateSystem
Класс CoordinateSystem описывает локальную систему координат с тремя элементами:
Origin - точка начала координат,
AxisX - направление оси X,
AxisY - направление оси Y.
На их основе Tekla автоматически строит ось Z как векторное произведение AxisX × AxisY.
Вы можете создать систему координат вручную:
Если оси не перпендикулярны или не нормализованы - Tekla создаст "кривую" рабочую плоскость. Поэтому важно:
нормализовать векторы:
проверять, чтобы`x.Cross(y)` не давал нулевой вектор.
🧮 MatrixFactory — трансформации
Класс MatrixFactory позволяет переводить точки и объекты между системами координат.
Главные методы:
FromCoordinateSystem(cs) - из локальной СК → в рабочую плоскость;
ToCoordinateSystem(cs) - наоборот, из рабочей плоскости → в локальную;
ByCoordinateSystems(cs1, cs2) - напрямую из одной СК в другую.
Пример:
🎯 Тот же результат можно получить в два шага:
📌 Практический смысл
Работа с системами координат - ключ к точному позиционированию элементов, особенно при:
- создании закладных, пластин и вырезов;
- копировании объектов между сборками;
- вычислении ориентации деталей.
#nipgroup #Tekla #TeklaSupport #TeklaHelp #TeklaAPI
💡 В Tekla Structures всё, что вы видите на экране — живёт в своей системе координат. Если вы хотите точно управлять положением объектов, нужно уметь работать с CoordinateSystem.
🧭 CoordinateSystem
Класс CoordinateSystem описывает локальную систему координат с тремя элементами:
Origin - точка начала координат,
AxisX - направление оси X,
AxisY - направление оси Y.
На их основе Tekla автоматически строит ось Z как векторное произведение AxisX × AxisY.
Вы можете создать систему координат вручную:
var origin = new Point(0, 0, 0);
var x = new Vector(1, 0, 0);
var y = new Vector(0, 1, 0);
var cs = new CoordinateSystem(origin, x, y);
Если оси не перпендикулярны или не нормализованы - Tekla создаст "кривую" рабочую плоскость. Поэтому важно:
нормализовать векторы:
x.Normalize(), y.Normalize();
проверять, чтобы`x.Cross(y)` не давал нулевой вектор.
🧮 MatrixFactory — трансформации
Класс MatrixFactory позволяет переводить точки и объекты между системами координат.
Главные методы:
FromCoordinateSystem(cs) - из локальной СК → в рабочую плоскость;
ToCoordinateSystem(cs) - наоборот, из рабочей плоскости → в локальную;
ByCoordinateSystems(cs1, cs2) - напрямую из одной СК в другую.
Пример:
Beam beam1 = new Beam();
Beam beam2 = new Beam();
Point point1 = new Point(1000, 0, 0);
var cs1 = beam1.GetCoordinateSystem();
var cs2 = beam2.GetCoordinateSystem();
var matrix = MatrixFactory.ByCoordinateSystems(cs1, cs2);
var point2 = matrix.Transform(point1);
🎯 Тот же результат можно получить в два шага:
var toCurrent = MatrixFactory.FromCoordinateSystem(cs1);
var toLocal = MatrixFactory.ToCoordinateSystem(cs2);
var point2 = toLocal.Transform(toCurrent.Transform(point1));
📌 Практический смысл
Работа с системами координат - ключ к точному позиционированию элементов, особенно при:
- создании закладных, пластин и вырезов;
- копировании объектов между сборками;
- вычислении ориентации деталей.
#nipgroup #Tekla #TeklaSupport #TeklaHelp #TeklaAPI
👍5
Tekla API С#: класс Picker в модели - выбираем объекты и точки в 3D
Когда плагину нужно дать пользователю выбрать точку, грань, линию или объект прямо в модели Tekla Structures - в игру вступает Tekla.Structures.Model.UI.Picker.
💡 Пример простого выбора точки
🧩 Что ещё может Picker
PickFace() - выбрать грань модели.
PickLine() - выбрать линию (например, ось).
PickObject() - выбрать один объект (балку, пластину, компонент и т.п.).
PickObjects() - выбрать сразу несколько объектов.
PickPoints() - выбрать последовательность точек (например, контур).
Все методы имеют перегрузки с подсказками (String prompt) для вывода сообщений пользователю.
💬 Подсказки (Prompts)
Tekla автоматически ищет переводы в prompts.ail.
Если перевода нет - покажет ваш текст как есть.
Так можно создавать уже локализованные плагины без дополнительного кода.
⚙️ Типичный сценарий
Например, ваш макрос строит линию между двумя точками.
Вы просто вызываете:
И пользователь буквально рисует мышью в модели.
Без сложных диалогов и ручного ввода координат.
🧠 Зачем это нужно
Упрощает взаимодействие с пользователем.
Делает плагины "живыми" и наглядными.
Позволяет строить, измерять и модифицировать объекты.
#nipgroup #Tekla #TeklaSupport #TeklaHelp #TeklaAPI
Когда плагину нужно дать пользователю выбрать точку, грань, линию или объект прямо в модели Tekla Structures - в игру вступает Tekla.Structures.Model.UI.Picker.
💡 Пример простого выбора точки
using Tekla.Structures.Model.UI;
using Tekla.Structures.Geometry3d;
public class Example
{
public void Example1()
{
var picker = new Picker();
try
{
Point point = picker.PickPoint("Выберите точку в модели");
MessageBox.Show($"Выбрана точка: {point}");
}
catch (Exception e)
{
MessageBox.Show($"Пользователь отменил выбор: {e.Message}");
}
}
}
🧩 Что ещё может Picker
PickFace() - выбрать грань модели.
PickLine() - выбрать линию (например, ось).
PickObject() - выбрать один объект (балку, пластину, компонент и т.п.).
PickObjects() - выбрать сразу несколько объектов.
PickPoints() - выбрать последовательность точек (например, контур).
Все методы имеют перегрузки с подсказками (String prompt) для вывода сообщений пользователю.
💬 Подсказки (Prompts)
Tekla автоматически ищет переводы в prompts.ail.
Если перевода нет - покажет ваш текст как есть.
Так можно создавать уже локализованные плагины без дополнительного кода.
⚙️ Типичный сценарий
Например, ваш макрос строит линию между двумя точками.
Вы просто вызываете:
var picker = new Picker();
var p1 = picker.PickPoint("Выберите первую точку");
var p2 = picker.PickPoint("Выберите вторую точку");
И пользователь буквально рисует мышью в модели.
Без сложных диалогов и ручного ввода координат.
🧠 Зачем это нужно
Упрощает взаимодействие с пользователем.
Делает плагины "живыми" и наглядными.
Позволяет строить, измерять и модифицировать объекты.
#nipgroup #Tekla #TeklaSupport #TeklaHelp #TeklaAPI
👍8❤1