Можно ли в Python создавать бинарные файлы? Конечно можно.
Для этого в Python есть следующие инструменты:
▫️ тип данных bytes и bytearray
▫️ открытие файла в режиме wb (write binary) или rb (read binary)
▫️ модуль struct
Про модуль struct поговорим в первую очередь.
Файл в формате JSON или Yaml внутри себя содержит разметку данных. Всегда можно определить где список начался а где закончился. Где записана строка а где словарь. То есть формат записи данных содержит в себе элементы разметки данных.
В binary-файле данные не имеют визуальной разметки. Это просто байты, записанные один за другим. Правила записи и чтения находятся вне файла.
Модуль struct как раз и помогает с организацией данных в таком файле с помощью определения форматов записи для разных частей файла.
Модуль struct преобразует Python-объекты в массив байт, готовый к записи в файл и имеющий определённый вид.
Для этого всегда следует указывать формат преобразования (или, как оно здесь называется - запаковки).
Формат нужен для того, чтобы выделить достаточное количество байт для записи конкретного типа объекта. В последствии с помощью того же формата будет производиться чтение.
При этом следует помнить что мы говорим о типах языка С а не Python.
Именно формат определяет, что записано в конкретном месте файла, число, строка или что-то еще.
Вот какие токены формата у нас есть.
Помимо этого, первым символом можно указать порядок байтов. На разных системах одни и те же типы данных могут записываться по-разному, поэтому желательно указать конкретный способ из доступных. Если этого не сделать, то используется символ '@', то есть нативный для текущей системы.
В строке формата мы пишем в каком порядке и какие типы собираемся преобразовать в байты.
Запакуем в байты простое число, токен "i".
>>> import struct
>>> struct.pack('=i', 10)
b'\n\x00\x00\x00'
Теперь несколько float, при этом нужно передавать элементы не массивом а последовательностью аргументов.
>>> struct.pack('=fff', 1.0, 2.5, 4.1)
b'\x00\x00\x80?\x00\x00 @33\x83@'
Вместо нескольких токенов можно просто указать нужное количество элементов перед одним токеном, результат будет тот же.
>>> struct.pack('=3f', 1.0, 2.5, 4.1)
b'\x00\x00\x80?\x00\x00 @33\x83@'
Теперь запакуем разные типы
>>> data = struct.pack('=fiQ', 1.0, 4, 100500)
я запаковал типы float, int и unsigned long long (очень большой int, на 8 байт)
b'\x00\x00\x80?\x04\x00\x00...'
Распаковка происходит аналогично, но нужно указать тот же формат, который использовался при запаковке. Результат возвращается всегда в виде кортежа.
>>> struct.unpack('=fiQ', data)
(1.0, 4, 100500)
Как видите, ничего страшного!
#lib#basic
🔔Большеинструментов — больше возможностей!
Мы активно расширяем набор инструментов, чтобы работа в Revit была быстрее и удобнее.
И сейчас в нашем арсенале уже более 15 полезных инструментов, 12 из которых доступны абсолютно бесплатно🔥
С их помощью вы можете:
🔘копировать листы внутри проекта с различными настройками, переименовывать их, перенумеровывать
🔘пакетно печатать листы разных форматов в PDF из текущего и связанных файлов
🔘изменять опорный уровень у элементов без их смещения
🔘задавать нумерацию элементов в спецификациях
🔘экспортировать спецификации в Excel
🔘заполнять количество изменений в штампах листа и изменения в ведомостях рабочих комплектов
🔘экспортировать листы в DWG
🔘управлять видимостью связей на видах и шаблонах
🔘заменять тип осей с 2D на 3D и наоборот
🔘пакетно добавлять/удалять параметры в проекте, копировать их между семействами/проектами
🔘находить и очищать проект от ненужных dwg и dxf импортов
🔘гибко выбирать элементы по значениям параметров
🔘создавать рабочие наборы
🔘обрезать вид по прямоугольной области
✅ Также, вы можете заполнять параметры элементов на основе значений других параметров и расчетных формул
то есть гибко задавать в какие элементы, в какой параметр и что именно должно быть записано
Инструменты на практике
⏺ Установите PikToolsBox (кнопка "Скачать" на странице продукта) и далее загрузите сборку Общее-Revit
Пробный период для платных решений на 3 месяца
⏺Оставьте заявку
#Revit#BIM#ПИК#BIMTeam
Попробуй бесплатно плагины PikTools!
🥳PikTools - инструменты для автоматизации проектирования в Revit, AutoCAD&Civil3D
В составе бесплатного пакета для Revit:
🔸Опорный уровень - изменение опорного уровня элементов без их фактического смещения
🔸Диспетчер параметров - комплексная работа с параметрами, пакетное добавление в проект и в семейство
🔸Экспорт в Excel - пакетный экспорт спецификаций из Revit в XLSX и TSV
🔸Фильтр - гибкая фильтрация элементов по выбранным параметрам и их значениям
🔸Перенумеровать листы - изменение номера листов в проекте
🔸Оси 2D/3D - пакетная замена режима осей на виде с 2D на 3D и обратно
🔸Ревизии - автозаполнение количества изменений в штампах листа и изменений в ведомостях рабочих комплектов чертежей
🔸CAD менеджер - поиск и удаление импортированных DWG-файлов в проектах Revit
Подробнее на нашем сайте
Инструкции
Скачать бесплатно
#Revit#BIM#ПИК#BIMTeam
МЫ - Команда BIMTeam из ПИК, и мы создаем продукты, которые делают процессы BIM-моделирования проще и быстрее
🔍Наши ключевые продукты
Family Manager - помогает удобно управлять семействами в Revit без лишней рутины
✈️Подписаться на канал
PikTools - автоматизация в Revit
🤩АР
✈️Подписаться на канал
🤩КР
✈️Подписаться на канал
🤩ИОС
✈️Подписаться на канал
🤩Общее
✈️Подписаться на канал
RobotR2- Автоматизация градостроительного и архитектурного проектирования
✈️Подписаться на канал
BIM Inspector - проверяет модели на соответствие стандартам и сокращает количество ошибок
✈️Подписаться на канал
🔔Где ещё мы есть?
🤩Новости и обсуждения → Tg | VK | LinkedIn
🤩Официальный сайт → bimteam.ru
👍 Подписывайтесь на наши каналы и следите за новостями!
#BIM#Строительство#Revit#Цифровизация#Инновации
МЫ - Команда BIMTeam из ПИК, и мы создаем продукты, которые делают процессы BIM-моделирования проще и быстрее
🔍Наши ключевые продукты
Family Manager - помогает удобно управлять семействами в Revit без лишней рутины
✈️Подписаться на канал
PikTools - автоматизация в Revit
🤩АР
✈️Подписаться на канал
🤩КР
✈️Подписаться на канал
🤩ИОС
✈️Подписаться на канал
🤩Общее
✈️Подписаться на канал
RobotR2- Автоматизация градостроительного и архитектурного проектирования
✈️Подписаться на канал
BIM Inspector - проверяет модели на соответствие стандартам и сокращает количество ошибок
✈️Подписаться на канал
🔔Где ещё мы есть?
🤩Новости и обсуждения → Tg | VK | LinkedIn
🤩Официальный сайт → bimteam.ru
👍 Подписывайтесь на наши каналы и следите за новостями!
#BIM#Строительство#Revit#Цифровизация#Инновации
МЫ - Команда BIMTeam из ПИК, и мы создаем продукты, которые делают процессы BIM-моделирования проще и быстрее
🔍Наши ключевые продукты
Family Manager - помогает удобно управлять семействами в Revit без лишней рутины
✈️Подписаться на канал
PikTools - автоматизация в Revit
🤩АР
✈️Подписаться на канал
🤩КР
✈️Подписаться на канал
🤩ИОС
✈️Подписаться на канал
🤩Общее
✈️Подписаться на канал
RobotR2- Автоматизация градостроительного и архитектурного проектирования
✈️Подписаться на канал
BIM Inspector - проверяет модели на соответствие стандартам и сокращает количество ошибок
✈️Подписаться на канал
🔔Где ещё мы есть?
🤩Новости и обсуждения → Tg | VK | LinkedIn
🤩Официальный сайт → bimteam.ru
👍 Подписывайтесь на наши каналы и следите за новостями!
#BIM#Строительство#Revit#Цифровизация#Инновации
🐚🐚Новый плагин в составе бесплатного пакета PikTools
Экспорт в DWG - пакетный экспорт листов в DWG из нескольких файлов сразу, включая связанные файлы
Как установить
▪️Скачайте приложение PikToolsBOX
▪️Установите 🥰 PikTools. Общее
▪️Инструкции доступны по нажатию F1 при наведении курсора на плагин в Revit
✅Помощь и консультации по функционалу
▪️Чат поддержки
▪️Инструкция
#Revit#BIM#ПИК#BIMTeam#Плагины
🔔Собираем обратную связь
Месяц назад мы опубликовали плагин "Армировать по площади".
💜Поделитесь обратной связью в коротком опросе, для нас это будет очень полезно.
#Revit#BIM#ПИК#BIMTeam#Плагины
🆓Попробуйте бесплатно плагин PikTools
Колористика - новый плагин для назначения цвета фасадной плитке, работает с панелями витража.
Как установить
▪️Скачайте приложение 😆PikToolsBOX
▪️Установите 😍 PikTools. АР
▪️Инструкции доступны по нажатию F1 при наведении курсора на плагин в Revit
✅Помощь и консультации по функционалу
▪️Чат поддержки
▪️Инструкция
#Revit#BIM#ПИК#BIMTeam#Плагины
Попробуйте плагины PikTools для Revit от команды BIMTeam из ПИК!
↗️Бесплатныеплагины:
🤩Армироватьпо площади
Устанавливает армирование в плитах и стенах с использованием системного семейства "Армирование по площади"
🤩Опорный уровень
Изменение опорного уровня элементов без их фактического смещения
🤩Диспетчер параметров
Комплексная работа с параметрами, пакетное добавление в проект и в семейство
🤩Экспорт в Excel
Пакетный экспорт спецификаций из Revit в XLSX и TSV
🤩Фильтр
Гибкая фильтрация элементов по выбранным параметрам и их значениям
🤩Перенумеровать листы
Изменение номера листов в проекте
🤩Оси 2D/3D
Пакетная замена режима осей на виде с 2D на 3D и обратно
🤩Ревизии
Автозаполнение количества изменений в штампах листа и изменений в ведомостях рабочих комплектов чертежей
🤩CAD менеджер
Поиск и удаление импортированных DWG-файлов в проектах Revit
🤩Нумерация
Нумерация элементов в спецификациях
🤩Обрезатьвид
Подрезка 2D видов по выделенной области
↗️Пробный период 3 месяца:
🤩Перемычки
Автоматизация процесса расстановки перемычек в проекте, упрощение процесса их маркировки и создания эскизов
🤩Отделка
Рассчитывает площади отделки, назначает типы и марки отделки и создает ведомость отделки
🤩Склеить параметры
Быстро и безошибочно заполненяет параметры на основе значений других параметров и расчетных формул
🔍Как установить?
Скачайте приложение 😆PikToolsBOXи установите продукты:
😍 PikTools. АР
😀 PikTools. КР
🥰 PikTools. Общие
📝Инструкции
Инструкции доступны по нажатию F1 при наведении курсора на плагин в Revit
🔊Задать вопрос можно здесь
📌Наш бот-ассистентздесь
#Revit#BIM#ПИК#BIMTeam#Плагины
Все официальные каналы BIMTeam в одном месте⤵️
▪️BIMTeam News - https://t.me/bimteamnews
➡️ Здесь всё самое важное: обновления всех продуктов, анонсы и главные новости компании
▪️Family Manager - https://t.me/fm_bimteam
➡️ Всё для эффективной работы с семействами в Revit и AutoCAD
▪️BIM Inspector - https://t.me/bi_bimteam
➡️ Новости о сервисе по контролю качества BIM-моделей
▪️R2 - https://t.me/robotR2dev
➡️ Новости о платформе для автоматизации архитектурного и градостроительного проектирования
▪️PikTools АР - https://t.me/PikToolsAR
➡️ Всё для автоматизации bim-моделирования в Revit для архитекторов
▪️PikTools КР - https://t.me/PikToolsKR
➡️ Всё для автоматизации bim-моделирования в Revit для конструкторов
▪️PikTools ИОС - https://t.me/PikToolsIOS
➡️ Все для автоматизации bim-моделирования в Revit для инженеров ИОС
▪️PikTools Общее - https://t.me/PikToolsGeneral
➡️ Все для автоматизации bim-моделирования в Revit междисциплинарного характера
▪️Сообщество VK - https://vk.com/bimteamapps
➡️ Здесь анонсы, обсуждения и жизнь компании чуть ближе к вам
Выбирайте свой вариант и будьте на связи!
#BIMTeam#ПИК#Revit#Civil3D
🆕Новые плагины в составе бесплатного пакета PikTools
▪️Видимость связей - скрытие/отображение связанных файлов Revit на нескольких видах или шаблонах видов
▪️Создать рабочие наборы - создание рабочих наборов в проекте
Как установить
▪️Скачайте приложение PikToolsBOX
▪️Установите 🥰 PikTools. Общее
▪️Инструкции доступны по нажатию F1 при наведении курсора на плагин в Revit
✅Помощь и консультации по функционалу
▪️Чат поддержки
▪️Инструкция Видимость связей
▪️Инструкция Создать рабочие наборы
#Revit#BIM#ПИК#BIMTeam#НоваяФича
🆓Бесплатный пакет плагинов для Revit от BIMTeam
Предлагаем набор инструментов для автоматизации работы в Autodesk Revit. Все плагины бесплатны, не требуют лицензионных ключей и готовы к использованию сразу после установки.
В пакете:
▪️Управление параметрами и данными
▪️Автоматизация нумерации листов и элементов
▪️Экспорт спецификаций в Excel
▪️Инструменты для работы с видами, осями и связями
▪️Специализированные решения для армирования, фасадов и инженерных сетей
🔗Ссылка для скачивания
#BIM#Revit#BIMTeam#автоматизация#проектирование