Группа НИП
459 subscribers
1 video
7 files
36 links
BIM-Проекты и BIM-Консалтинг

Сайт https://nip-group.ru
Школа https://nip-school.ru
Беседка https://t.me/nipgroupsupport
Download Telegram
Подписи сотрудников в чертежах

👷‍♂️ Как автоматически вставлять подпись сотрудника в Основную надпись в TEKLA Structures

Эта инструкция поможет быстро добавлять подписи к чертежам и автоматически заполнять соответствующие поля.

🖊 Шаг 1. Подготовка подписи
- Вставить изображение подписи сотрудника в любую чертежную программу (AutoCAD, NanoCAD)
- Обвести подпись полилинией, сплайном или просто линиями
- Удалить изображение и сохранить результат в файл DWG

🛠 Шаг 2. Подготовка таблицы символов в редакторе символов TEKLA
- Открыть Редактор символов TEKLA (Файл - Редакторы - Редактор символов)
- Перейти на нулевую ячейку - далее import - import - указать сохраненный файл DWG
- Убедиться что подпись из DWG файла вставилась и, далее, сохранить полученную таблицу символов как Фамилия.sym (Файл - Сохранить как) в папку, прописанную в расширенном параметре DXK_SYMBOLPATH (Например: .\env\Symbols\)

📄 Шаг 3. Настройка шаблона основной надписи
- Открыть необходимый шаблон в Редакторе шаблонов TEKLA (Например: Шаблон основной надписи)
- Вставить в нужную область поле Символ
- В качестве ссылки на файл символа вставить формулу GetValue("USERDEFINED.DR\_DRAWN_BY")+".sym@0", где USERDEFINED.DR_DRAWN_BY - соответствующее пользовательское поле чертежа, где указывается Фамилия участника
- Сохранить шаблон и проверить результат.

💡Теперь подписи сотрудников добавляются автоматически при наличии соответствующего файла символов и заполнении соответствующего атрибута

#nipgroup #Tekla #TeklaSupport #TeklaHelp #TeklaDrawing #TeklaTemplate
👍10
Символы болтов на чертеже

👷‍♂️ Создание собственных символов болтов в TEKLA возможно и без плагинов🔩


📄 Файл символов отображения болтов
По умолчанию для отображения болтов используется файл символов ud_bolts.sym, который находится в папке символов (обычно это папка ..\Tekla Structures\<version>\environments\common\symbols\) и содкржит в базовой комплектации ГОСТ символы (64 и 66).
Вы можете создавать собственные символы болтов просто в Редакторе символов TEKLA и использовать их на чертежах. Главное чтобы этот файл символов был виден в модели (Например: находился по пути, прописанном в расширенном параметре DXK_SYMBOLPATH)

📝 Таблица соответствия символов и наборов болтов
По умолчанию соотношение символа и используемого набора болтов прописывается в файле bolt_symbol_table.txt , который находится в папке текущей среды, либо среды common по пути ..\Tekla Structures\<version>\environments\
Вы можете создать свою подобную таблицу с помощью блокнота, для этого необходимо
1️⃣Открыть «Блокнот» или любой другой текстовый редактор
2️⃣Создать текстовый файл, представляющий собой таблицу с тремя столбцами (разделенными пробелом):
- в первом столбце содержится стандарт комплекта болтов;
- во втором столбце содержится диаметр болта;
- в третьем столбце содержится имя файла символов с расширением и номер символа, разделенные символом @.
Пример содержимого файла:
7798 24 ud_bolts.sym@64
52644 16 ud_bolts.sym@66
3️⃣Сохранить файл с тем же именем bolt_symbol_table.txt (или с любым другим на латинице и без пробелов), например, в папку .\env\FirmSettings.
4️⃣Задать имя этого файла в качестве значения расширенного параметра XS_USER_DEFINED_BOLT_SYMBOL_TABLE (Файл - Настройки - Расширенные параметры) следующим образом: XS_USER_DEFINED_BOLT_SYMBOL_TABLE=.\env\FirmSettings\bolt_symbol_table.txt
(лучше ввести полный относительный путь к файлу определений болтов).
5️⃣Перезагрузить модель TEKLA🔄

⚙️ Использование собственного символа
В свойствах вида чертежа настройте представление болтов как Пользовательский символ
После этого ваши болты будут отображаться на чертежах с заданными символами

💡 Такой подход позволяет визуально кастомизировать отображение болтов 🔩 и быстро использовать специальные обозначения на всех чертежах проекта 🏗

#nipgroup #Tekla #TeklaSupport #TeklaHelp #TeklaDrawing #TeklaSetting
🔥11👍1
Связь TEKLA с расчетными программами

👷‍♂️ В наших сообществах мы часто рассказываем как создавать расчетную модель в TEKLA:

- из цикла социального проекта Школа ТИМ
👉 Ссылка на YouTube
👉 Ссылка на RuTube  
👉 Ссылка на Дзен

- из цикла вебинаров, посвященных Steel2Real2019
👉 YouTube

Полученную расчетную модель возможно экспортировать в большое количество расчетных программных комплексов БЕЗ ПЕРЕРАБОТОК c помощью плагинов:

Autodesk ROBOT (нужна подписка TEKLA) - https://warehouse.tekla.com/#/catalog/details/u0f2b9398-5a01-4c83-87c1-d778a63610d4
SAP2000 (нужна подписка TEKLA) - https://warehouse.tekla.com/#/catalog/details/u8e725e49-434c-4b32-91fb-65e0926e6a1b
Лира САПР - плагин устанавливается в процессе установки самого расчетного комплекса на компьютер, где УЖЕ установлена TEKLA 
SCAD Office - https://disk.yandex.ru/d/YdvA1DhKLn7zYg (плагин устанавливается копированием в ..\Tekla Structures\<version>\bin\plugins\Tekla\Analysis\ или в ..\Tekla Structures\<version>\bin\plugins\)

💡 Данный подход позволяет значительно сократить временные затраты на дублирование информации в расчетные комплексы - пользуйтесь 🏗

#nipgroup #Tekla #TeklaSupport #TeklaHelp #TeklaSetting #TeklaBIM
🔥6
Представление марки на чертежах

👷‍♂️ Как поправить представление позиции детали или сборки в TEKLA

🔹 Самый первый и банальный вопрос — как заменить символ / на - в нумерации, чтобы позиция была не К/1, а К-1.

Решение простое:
Файл → Настройки → Параметры → Нумерация → Разделитель номеров позиций → выбираем нужный символ.

🤔 А что, если этого не достаточно? Что если стандарты организации сверх консервативны…?

Тогда на помощь приходят расширенные параметры (перекрывают базовую настройку, указанную выше) Файл → Настройки → Параметры → Расширенные параметры:

⚙️ XS_PART_POSITION_NUMBER_FORMAT_STRING - этот расширенный параметр позволяет определить содержимое номера позиции ДЕТАЛИ
Поддерживает любое сочетание следующих переключателей
%PART_PREFIX% - префикс детали
%PART_POS% - номер позиции детали
%PART_POS_WITH_LETTERS% - номер позиции детали в БУКВЕННОМ виде. По умолчанию используются буквы A–Z, однако можно задать допустимые буквы с помощью расширенного параметра XS_VALID_CHARS_FOR_PART_POSITION_NUMBERS
📌 Пример: для получения номера детали ДЕТ-001 нужно указать следующее %PART_PREFIX%-%PART_POS.3%

⚙️ XS_ASSEMBLY_POSITION_NUMBER_FORMAT_STRING - этот расширенный параметр позволяет определить содержимое номера позиции СБОРКИ
Поддерживает любое сочетание следующих переключателей
%ASSEMBLY_PREFIX% - префикс сборки
%ASSEMBLY_POS% - номер позиции сборки
%ASSEMBLY_POS_WITH_LETTERS% - номер позиции сборки в БУКВЕННОМ виде. По умолчанию используются буквы A–Z, однако можно задать допустимые буквы с помощью расширенного параметра XS_VALID_CHARS_FOR_ASSEMBLY_POSITION_NUMBERS
%UDA:[имя_пользовательского_атрибута]% - пользовательский атрибут сборки или главной детали сборки, например: %UDA:MAINPART.USER_FIELD_1%
%TPL:[имя_шаблона]% - атрибут шаблона сборки или главной детали сборки, например: %TPL:PROJECT.NUMBER%
📌 Пример: для получения номера сборки СТК-001 нужно указать следующее %ASSEMBLY_PREFIX%-%ASSEMBLY_POS.3%

🔄 XS_SWITCH_POS_NUMBERS_FOR - этот расширенный параметр позволяет изменить префикс, заданный для меток сборок и/или деталей Tekla Structures, на суффикс (например, A1 становится 1A). Возможные значения - NONE, PARTS, ASSEMBLIES и ASSEMBLIES_AND_PARTS. Значение по умолчанию - ASSEMBLIES_AND_PARTS (расширенные параметры выше перекрывают текущий расширенный параметр)

💡 Таким образом, Tekla даёт гибкие инструменты, чтобы подстроить нумерацию под любые стандарты вашей организации

#nipgroup #Tekla #TeklaSupport #TeklaHelp #TeklaSetting
👍96
EXCEL отчет из модели TEKLA​​

👷‍♂️Не секрет, что из TEKLA возможно выгрузить любую информацию в текстовом виде…
А так как HTML-документ = текст, а Excel умеет читать HTML-таблицы
👉 любую информацию легко выгрузить прямо в Excel.

Разберёмся, как выглядит подобный шаблон отчёта:

📝Структура отчёта (HTML-шаблон)

При создании нового шаблона в Редакторе шаблонов необходимо указать: Тип шаблона → Отчёты

Далее формируем следующую структуру документа 
- всё, что обёрнуто в **звёздочки** - это инструменты Редактора шаблона Tekla (колонтитулы, строки…)
- всё, что обёрнуто
в *<…>* - это стандартные HTML-теги
- всё, что обёрнуто
в *<!--…-->* - это подробные комментарии (они в отчете не нужны)

*Верхний колонтитул*
<!DOCTYPE html> <!-- Объявление типа документа. Сообщает браузеру или Excel, что файл в формате HTML5 -->
<html> <!-- Начало HTML-документа -->
<head> <!-- Служебная часть документа: настройки, кодировка, заголовок -->
<meta charset="windows-1251"> <!-- Определение кодировки текста (в Tekla часто используется Windows-1251 для поддержки кириллицы) -->
<title>Название отчета</title> <!-- Заголовок документа, отображается в Excel как имя вкладки -->
</head> <!-- Конец служебной части -->
<body> <!-- Основное содержимое документа -->

*Верхний колонтитул страницы (1)*
<table> <!-- Тэг начала таблицы - здесь начинается таблица, которую Excel сможет распознать -->

*Верхний колонтитул страницы (2)*
<tr> <!-- Начало строки с заголовками столбцов -->
<td>Название столбца 1</td> <!-- Заголовок первого столбца -->
<td>Название столбца 2</td> <!-- Заголовок второго столбца -->
<td>…</td> <!-- Заголовок третьего и следующих столбцов -->
</tr> <!-- Конец строки с заголовками -->

*Строка*
<tr> <!-- Начало строки с данными -->
<td>Значение свойства 1</td> <!-- Первая ячейка строки: сюда Tekla подставит значение свойства -->
<td>Значение свойства 2</td> <!-- Вторая ячейка строки -->
<td>…</td> <!-- Третья и последующие ячейки -->
</tr> <!-- Конец строки с данными -->

*Нижний колонтитул страницы*
</table> <!-- Тэг окончания таблицы - здесь заканчивается таблица, которую Excel сможет распознать -->

*Нижний колонтитул*
</body> <!-- Конец содержимого документа -->
</html> <!-- Конец HTML-документа -->


📂Где хранить шаблон
Сохраняем отчёт в папку модели, или в любой каталог, заданный в расширенных параметрах: XS_TEMPLATE_DIRECTORY, XS_TEMPLATE_DIRECTORY_SYSTEM, XS_PROJECT, XS_FIRM.

💡 Чтобы отчёт сразу открывался в Excel, в имени файла перед .rpt добавляем .xls.
Например: report.xls.rpt

⚡️ Как выгрузить отчёт
1️⃣ Открываем модель → Чертежи и отчёты → Отчёты 
2️⃣ Выбираем сохранённый отчёт
3️⃣ Жмём Создать из выбранных (или из всех элементов)
4️⃣ Готовый файл открываем в Excel 📊

#nipgroup #Tekla #TeklaSupport #TeklaHelp #TeklaTemplate
🔥73👍2👏1
Народ, всем привет! Будем очень признательны за вашу поддержку канала https://t.me/boost/nipgroup
​​Фильтрация элементов в спецификациях Tekla Structures

👷‍♂️ При формировании вида чертежа часто возникает задача — показать детали, которые не должны попадать в спецификацию.

Можно, конечно, использовать фильтр соседних деталей, но это подходит не всегда ⚡️

📑 Помимо всего прочего, при большом количестве объектов спецификацию приходится делить на несколько листов. И вот тут новички начинают дублировать спецификации, прописывая условия напрямую в строках:

if (GetValue("ASSEMBLY_NAME")=="Колонна") then Output() else StepOver() endif

В итоге 👉 получаем десятки (а то и сотни) одинаковых шаблонов, отличающихся лишь одним условием.
Теперь попробуйте за всем этим уследить… 🤯

Решение есть!

В пользовательские атрибуты чертежа через objects.inp добавляем поля фильтрации:

✏️ RU_DRW_FILTER — в этом поле перечисляем через пробел нужные префиксы элементов
✏️ RU_DRW_SYSTEM — в этом поле перечисляем через пробел нужные стадии элементов

👉 Таких фильтров можно сделать сколько угодно. На нашей практике достаточно указанных выше.

Теперь в строку спецификации добавляем следующее условие:
if 
// Для вывода всего, когда поля пустые
((GetValue("USERDEFINED.RU_DRW_FILTER")*1==0 && GetValue("USERDEFINED.RU_DRW_SYSTEM")*1==0) ||

// Для вывода по префиксу, когда стадия пустая
(find(GetValue("USERDEFINED.RU_DRW_FILTER"),GetValue("CAST_UNIT_PREFIX"))!=-1 && GetValue("USERDEFINED.RU_DRW_SYSTEM")*1==0) ||

// Для вывода по стадии, когда префикс пустой
(GetValue("USERDEFINED.RU_DRW_FILTER")*1==0 && find(GetValue("USERDEFINED.RU_DRW_SYSTEM"),GetValue("PHASE.RU_PHS_SYSTEM"))!=-1) ||

// Для вывода по префиксу и стадии одновременно
(find(GetValue("USERDEFINED.RU_DRW_FILTER"),GetValue("CAST_UNIT_PREFIX"))!=-1 && find(GetValue("USERDEFINED.RU_DRW_SYSTEM"),GetValue("PHASE.RU_PHS_SYSTEM"))!=-1)) 

then Output() else StepOver() endif

В итоге получаем простое и универсальное решение фильтрации любой спецификации без бесконечного копирования шаблонов.

🚀 Удобно, гибко и легко поддерживать!

#nipgroup #Tekla #TeklaSupport #TeklaHelp #TeklaTemplate
👍82
Почему среда в TEKLA это про обучение, а не про реальную работу

👷‍♂️ Давайте вместе разбираться

📂 Среда + Роль

(управляется локализаторами или, если вы покупаете среду, соответствующими разработчиками)

Плюсы:
🔧 Гибкая настройка (но требует глубокого понимания структуры каталогов)
🚀 Быстрый старт для работы с программой
📚 Готовые сортаменты (каталоги)
🏗 Хороший шаблон для будущих конфигураций (можно взять/подсмотреть/доработать)

Минусы:
💻 Изменения и доработки вносятся локально (в сети работает медленно)
🤹 Совместная работа требует «костылей» (облака, синхронизаторы)
🔄 Меняется при обновлении версии Tekla (каждый раз нужно подстраивать заново)
🌀 Слишком много преднастроек, которые мешают
📦 Для передачи проекта в архив/заказчику нужна копия среды и программы

📁 Папки Фирма и Проект (XS_FIRM и XS_PROJECT)
(управляется администратором компании или конкретного проекта)

Плюсы:
🎯 Гибкая и централизованная настройка
🛡 Не меняется при обновлении программы (95% настроек поддерживается новыми версиями)

Минусы:
🌐 Любые правки затрагивают все модели (иногда это лишнее)
🔗 Внешних пользователей нужно подключать к общему ресурсу (сеть/облако)
📦 Для передачи проекта в архив/заказчику нужна копия настроек

📦 Шаблон модели + Blank Project
(может управляться пользователем в процессе работы)

Плюсы:
🔧 Гибкая настройка (всё можно разместить в папке модели)
🎯 Изменения влияют только на текущую модель (для наследования копируем нужное в шаблон)
🛡 При обновлении программы не ломается (95% настроек поддерживается новыми версиями)
📦 Архивация и передача проекта не требуют дополнительных действий (всё в папке модели)
👥 Подключение внешних пользователей только в модель (Multiuser или Model Sharing)

Минусы:
⚠️ Нужен механизм доставки шаблона конфигурации (важно следить, чтобы новые модели создавались именно из шаблона)

⚖️ ВЫВОД
👉 Для быстрого старта и если вы работаете один и всё понимаете — Среда.
👉 Для централизованного контроля и если есть профильный админ — Фирма/Проект.
👉 Для максимальной гибкости и независимости — Blank Project.

Можно комбинировать все три методики, но и минусы в этом случае тоже суммируются.
💡 Мы — за Шаблон (Blank Project)!


#nipgroup #Tekla #TeklaSupport #TeklaHelp #TeklaSetting
👍3
Проблема с блокировкой модели Tekla (потеря данных)

🚨На самом деле всё решается очень просто, если соблюдать порядок 👇

1️⃣ Настройка Tekla (!!! один раз и навсегда !!!)
⚙️ Рекомендуемые параметры автосохранения (Файл → Настройки → Параметры → Общие):
- Кол-во команд моделирования/редактирования: 150–200
- Автосохранение каждые: 50–60 мин
- Создание следующего числа чертежей: 2
💡 Дополнительно:
- Создай сочетание клавиш или кнопку для принудительного автосохранения (Файл → Настройки → Лента / Сочетания клавиш → найти «Автосохранение» → назначить).

2️⃣ Автосохранение (!!! перед каждым сохранением модели !!!)
- Выполни любое действие (создать/удалить объект или вид).
- Нажми на автосохранение (кнопка или «горячая клавиша»).
📂 Скопируй папку автосейва своей модели из C:\TeklaStructuresModels\autosave\
в отдельную директорию (например, D:\TeklaStructuresAutosave\).
❗️Это особенно важно для масштабных многопользовательских моделей!

3️⃣ Сохранение модели
💡 Если в модели работает несколько участников → сохраняемся по очереди.
После сохранения каждый сообщает коллегам об успешной операции
⚠️ Важно обращать внимание на уведомления в конце:
- Конфликты
- Ошибки
- Сообщения об удалении файлов чертежей
❗️ Если уведомления проигнорированы → сохранение считается незавершённым.
При конфликтах обязательно обсудить их с участниками
.

4️⃣ Диагностика и исправление (!!! этот шаг выполняется одним последним участником в цепочке сохранений !!!)
- Запусти Диагностику модели (Файл → Диагностика и исправление).
- При ошибках:
- проанализируй отчёт;
- исправь вручную или автоматически (Файл → Диагностика и исправление → Исправить модель).
- Сохрани и закрой модель (автосохранение не требуется).

🆘 Что делать, если модель всё же заблокировалась?

Метод 1:
- В папке модели замени файл model.db1 на model.db1.bak, просто изменив расширение.
- Открой модель и выполни шаг 4.

Метод 2:
- Замени файл model.db1 на тот, что лежит в папке автосохранения (см. шаг 2).
- Открой модель и выполни шаг 4.

Теперь блокировка модели не должна вас пугать - главное, соблюдать порядок!

#nipgroup #Tekla #TeklaSupport #TeklaHelp #TeklaSetting
👍6
⚙️ Подключение библиотек Tekla API в C#|

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
🔥81👍1
​​Создание чертежа свайного поля

🏗 Новый ролик на канале!

Показываю, как сделать чертёж свайного поля для загородного дома в TEKLA Structures.
В видео:
🔹 Атрибутивная информация и нумерация свай
🔹 Создание чертежа и маркировка
🔹 Настройка схемы свай и компоновки
🔹 Узел сопряжения сваи с ростверком

📹 Смотреть видео
👉 YouTube👉 https://youtu.be/ABNYX4fBGBA
👉 RuTube👉 https://rutube.ru/video/0877a382c536a0454413e6b97f49ae40/
👉 Дзен👉 https://dzen.ru/video/watch/68dd2f089f4a6629579c2ad3

#nipgroup #Tekla #TeklaTutorial
👍6
​​Каждый элемент информационной модели должен быть однозначно определен

📌 Что это значит на практике? 🤔

🧩 Компонент

- Деталь, арматурный стержень, болт, сварной шов — это элементарная часть модели.
- Определитель: Марка
- Каждый компонент должен иметь свой уникальный префикс, который однозначно относит его к группе компонентов.

🏗 Элемент
Сборка, отлитый элемент — объединение группы компонентов.
Определитель: Марка
Каждый элемент должен иметь свой префикс, который относит его к группе элементов.

⚙️ Система+Зона
Набор элементов, объединённых единой СТАДИЕЙ реализации, отдельный комплект (КЖ0, КМ1 и т.д.)
Идентификатор: шифр комплекта

🌐 Объект+Комплекс
Набор комплектов формируют проект
Идентификатор: шифр проекта

🔑 Однозначное определение элемента
Сложение всех шифров даёт возможность детерминантно определить любой элемент:

*<КОМПЛЕКС+ОБЪЕКТ>-<ЗОНА+СИСТЕМА>-<ЭЛЕМЕНТ>-<КОМПОНЕНТ>*

⚠️ Если хотя бы у одной составляющей нет уникального шифра, элемент однозначно определить невозможно.

📝 Простыми словами
- Каждый элемент без исключения должен иметь уникальный префикс
- Каждый элемент относится к своей стадии, исходя из порядка выпуска документации и реализации на площадке
- Стадия всегда влияет на нумерацию

😤ПОЭТОМУ... Никакой порядковой нумерации (1,2,3...) деталей или арматуры внутри сборки

#nipgroup #Tekla #TeklaSupport #TeklaHelp #TeklaBIM
👍1
Пример использования класса ViewHandler в Tekla API C#

В этом примере мы разберём, как работать с представлениями модели в 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
😱 Почему крутильные формы собственных колебаний — это плохо?

Модальный анализ показывает, как здание реально “ведёт себя” под действием динамических нагрузок.
И если среди первых форм появляются крутильные (торсионные) — это тревожный сигнал ⚠️

1️⃣ Нормативные рекомендации против кручения
📐 При проектировании многоэтажных зданий следует стремиться к такой расстановке вертикальных диафрагм (связей) жесткости, чтобы первые две формы колебаний были поступательными, без перекоса и закручивания вокруг вертикальной оси.
📏 Эксперты прямо рекомендуют избегать появления крутильных форм среди первых, а также контролировать соотношение периодов поступательных и вращательных движений (Материалы семинара для специалистов подразделений Главгосэкспертизы с участием специалистов ФГУП «НИЦ «Строительство»).

2️⃣ Почему возникает крутильный эффект
Основные причины — дисбаланс жесткости и геометрии:
📉 Эксцентриситет — несовпадение центра масс и центра жесткости;
🧱 Неравномерное распределение диафрагм и связей в плане;
🔄 Резонансное соотношение между поступательными и вращательными периодами.

Иными словами — здание не работает симметрично.

3️⃣ Почему это опасно
Кручение часто вызывает более раннее трещинообразование и нелинейное поведение элементов:
При действии чистого кручения трещины появляются уже при нагрузке ≈ 0,35 Tₑₓₚ, в то время как при осевом сжатии - при ≈ 0,7 Tₑₓₚ.
👉 То есть крутящий момент “ломает” бетон почти вдвое раньше.

4️⃣ Проблемы норм 🧾
Расчёт ЖБ элементов при кручении до сих пор плохо описан нормативно:
• В СП 63.13330 нет методики на совместное действие сжатия и кручения;
• Нет расчёта по наклонным трещинам при кручении;
• Не заданы предельные углы закручивания.

👉 Из-за этих пробелов при расчете в статически неопределимых конструкциях, допускается производить определение усилий в предположении упругой работы элементов, хотя это должно быть скорректировано на основе экспертных оценок или нелинейного моделирования.

⚖️ Вывод
Крутильные формы всегда присутствуют в пространственной модели, но если они - в числе первых, это уже симптом дисбаланса жесткости 🧩

📉 Это усложняет конструирование, повышает неопределенность, и часто требует разработки СТУ (Специальных Технических Условий).

🏗 Совет инженера:
Проверяйте центр масс и центр жесткости, располагайте диафрагмы равномерно и контролируйте симметрию жёсткости.

#nipgroup #StructuralAnalysis #Scad #LiraSapr
👍10
Tekla API C# Использование CoordinateSystem и MatrixFactory

💡 В 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
🏗 Методология расчёта монолитного железобетона в расчётных программах

Расчёт ЖБ конструкций — это не просто «сформировать конечные элементы, задать класс бетона, нагрузки, условия примыкания и нажать расчёт».
Чтобы получить реалистичные усилия и деформации, важно соблюдать методологию, основанную на пошаговом переходе от линейного расчёта к нелинейному.

🔹 Этап №1. Линейный расчёт с пониженными жёсткостями

📊 На первой стадии армирование ещё неизвестно, поэтому используем редуцированные модули упругости (СП 430):

для изгибаемых элементов0.3·Eb
для сжатых элементов0.6·Eb

🧩 Это позволяет грубо учесть нелинейную работу бетона и трещинообразование ещё до подбора арматуры.

🔹 Этап №2. Подбор арматуры и уточнение жёсткостей

После первичного подбора арматуры 🧠 - выполняем 2–3 итерации, уточняя коэффициенты редукции жёсткости.

📌 Цель — получить предварительную линеаризованную модель, где усилия распределяются приближенно к реальной работе конструкции.

💬 Хотя есть мнение, что можно сразу выполнять нелинейный расчет для вычисления приведенных жесткостей, целью текущего шага является как раз получение близкого к действительности перераспределения усилий в статически неопределимой системе.

🔹 Этап №3. Нелинейный расчёт

💥 Теперь в дело вступает нелинейный процессор - по фактическому армированию выполняется четыре расчётных модели, учитывающие разные стадии действия нагрузок и предельные состояния (СП 63, СП 430):

🧱 Модель 1 - Прочность при кратковременной нагрузке (Группа I)
🧱 Модель 2 - Прочность при длительной нагрузке (Группа I)
⚙️ Модель 3 - Прогибы и трещиностойкость при кратковременной нагрузке (Группа II)
⚙️ Модель 4 - Прогибы при длительной нагрузке (Группа II)

Подробнее о моделях 👉 https://t.me/nipgroup/65

📐 Итоговый прогиб: f = f3в - f3д + f4
где:
f3в – прогиб в Модели 3, полученный на шаге, соответствующем всей нагрузке.
f3д – прогиб в Модели 3, полученный на шаге, соответствующем постоянной и длительной нагрузке.
f4 – прогиб в Модели 4, полученный на шаге, соответствующем постоянной и длительной нагрузке (учитывающий ползучесть).

🔹 Этап №4. Финальный линеаризованный расчёт

После уточнения нелинейных жёсткостей выполняем:
Линейный расчёт с уточнёнными жёсткостями
Учет динамики (ветер, пульсации, сейсмика)
Итоговый подбор арматуры по СП 63
⚠️ Нелинейные модели не подходят для модального анализа, поэтому важно вернуться к линеаризованной модели с уточнёнными параметрами.

⚖️ Вывод:

Пошаговое сочетание предварительного линейного расчета, нелинейного уточненного расчета и финальной линейной проверки даёт максимально приближённый к реальности результат 👇
🔸 Реалистичное перераспределение усилий
🔸 Корректная оценка трещиностойкости и прогибов
🔸 Возможность дальнейшего модального и динамического анализа
🔸 Соответствие СП 63 и СП 430

💡 Итоговая философия:

Сначала “учесть понижение”, потом “уточнить”, потом “нелинейно проверить” и “вернуться к линеаризации”.
Так рождаются надёжные, физически достоверные расчёты ЖБ конструкций 💪

#nipgroup #StructuralAnalysis #Scad #ScadSupport #ScadHelp
🔥10
🏗 Характеристика четырех моделей нелинейного расчета железобетона

🧱 Модель 1 - Прочность при кратковременной нагрузке (Группа I)

Цель: проверка прочности (первая группа предельных состояний) при непродолжительном действии нагрузки.
Нагрузка: постоянные (G), длительные (Ql) и кратковременные (Qsh).
Диаграммы: используются расчетные диаграммы состояния бетона и арматуры.
Параметры бетона: начальный модуль упругости берется Eb1 по таблице 6.1 СП 63, корректировка не требуется. Пределы прочности на сжатие и растяжение берутся расчетные по таблице 6.7 СП 63. Деформация, соответствующая пределу прочности на сжатие, берется по формуле (Г.8) СП 63.
Параметры арматуры: расчетные сопротивления арматуры.

🧱 Модель 2 - Прочность при длительной нагрузке (Группа I)

Цель: проверка прочности (первая группа предельных состояний) при продолжительном действии постоянной и длительной нагрузки (включая длительную часть кратковременной нагрузки).
Нагрузка: постоянная и длительная нагрузка.
Диаграммы: используются расчетные диаграммы.
Изменения относительно Модели 1: пределы прочности бетона на сжатие и растяжение принимаются с коэффициентом γb1=0.9. Предел текучести арматуры принимается как для длительного действия нагрузки согласно Табл. 6.14 СП 63.

⚙️ Модель 3 — Прогибы и трещиностойкость при кратковременной нагрузке (Группа II)

Цель: определение прогибов и ширины раскрытия трещин (вторая группа предельных состояний) при непродолжительном действии всей нагрузки.
Нагрузка: вся нагрузка (постоянные + длительные + кратковременные). Также должен быть определен прогиб на шаге, соответствующем постоянной и длительной нагрузке.
Диаграммы: используются нормативные диаграммы состояния бетона и арматуры.
Изменения относительно Модели 1: начальный модуль упругости бетона Eb1 принимается с коэффициентом 0,85 (согласно п. 8.2.26 СП 63, формула (8.146)). Пределы прочности бетона на сжатие и растяжение, а также пределы текучести арматуры принимаются равными нормативным значениям (Табл. 6.7 и 6.13 СП 63).

⚙️ Модель 4 — Прогибы при длительной нагрузке (Группа II)

Цель: определение прогибов (вторая группа предельных состояний) при продолжительном действии постоянной и длительной нагрузки.
Нагрузка: постоянная и длительная нагрузка.
Диаграммы: используются нормативные диаграммы.
Изменения относительно Модели 3: начальный модуль упругости бетона заменяется модулем длительной деформации Eb,t, который определяется по формуле 6.3 СП 63 с учетом коэффициента ползучести φb,cr: Eb,t = Eb / (1 + φb,cr). Деформация, соответствующая пределу прочности бетона на сжатие, принимается по Табл. 6.10 СП 63.

Подробнее о методологии 👉 https://t.me/nipgroup/64

#nipgroup #StructuralAnalysis #Scad #ScadSupport #ScadHelp
🔥10
​​Создание чертежа ростверка

🏗 Новый ролик на канале!

Показываю, как пошагово создать чертёж ростверка для коттеджа в TEKLA Structures — от модели до финальной компоновки.

В видео:
🔹 Создание вида опалубки
🔹 Создание вида армирования
🔹 Настройка меток и нумерация арматуры
🔹 Компоновка и оформление чертежа

📹 Смотреть видео
👉 YouTube👉 https://youtu.be/xzbiTUlaSWc
👉 RuTube👉 https://rutube.ru/video/3105d552696aedf260ae4c759c588422/
👉 Дзен👉 https://dzen.ru/video/watch/68e66756df27664561e69d25

#nipgroup #Tekla #TeklaTutorial
🔥3
Tekla API С#: класс Picker в модели - выбираем объекты и точки в 3D

Когда плагину нужно дать пользователю выбрать точку, грань, линию или объект прямо в модели 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
👍81
​​Монолитизация пустотных плит перекрытия

🏗 Новый ролик на канале!

В видео:
🔹 Заполнение пустот и швов
🔹 Создание бетонных поясов
🔹 Формирование единого монолитного элемента
🔹 Подсчёт объёмов

📹 Смотреть ролик
👉 YouTube👉 https://youtu.be/Bw56qXY57Y4
👉 RuTube👉 https://rutube.ru/video/39e4260dbb99999ed7cb6152e28ea323/
👉 Дзен👉 https://dzen.ru/video/watch/68ef9c2ffd4a1a0bf98fe3dd

#nipgroup #Tekla #TeklaTutorial
🔥4
2025-10-16_11-40-34 (2).png
51.9 KB
Настройка экспорта атрибутивной информации в IFC

🔹 Этап 1. Задаем структуру IFC на уровне проекта
Файл → Свойства проекта → Пользовательские атрибуты →Вкладка: Экспорт IFC→Параметры: Название площадки IFC / Название здания IFC / Название яруса IFC

🔹 Этап 2. Задаем структуру IFC на уровне деталей (если отличаются от данных проекта)
Свойства детали → Пользовательские атрибуты →Вкладка: Экспорт в IFC→Параметры: Название здания IFC / Название яруса IFC

💡 Здесь же можно указать тип объекта IFC (например, IfcBeam, IfcColumn и т.д.), чтобы впоследствии добавить нужные атрибуты.

🔹 Этап 3. Добавляем таблицы атрибутов для экспорта
Файл → Экспорт → IFC → Дополнительный набор свойств → Изменить
Указываем:
- имя конфигурации
- наименование набора свойств
- типы выгружаемых объектов IFC, которым соответствует указанный набор
- формируем перечень необходимых атрибутов
После этого — сохраняем конфигурацию, выбираем соответственно ее и выгружаем модель.

!!! Интерфейс задания конфигурации в версиях до 2023 и после - отличается !!!

Этап 4. Контролируем результат экспорта

#nipgroup #Tekla #TeklaSupport #TeklaHelp #TeklaSetting #TeklaBIM
🔥8👍1