|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
1 | | #1 |
Revit 2019. Делаем макрос для получения размеров пластин
Негропроект, инженегр-конструктор
Черкассы
Регистрация: 16.02.2008
Сообщений: 903
|
||
Просмотров: 41798
|
|
||||
Регистрация: 10.02.2007
Москва
Сообщений: 611
|
Не знаю. Тему же о нововведениях в Revit 2019 прикрыли. Возможно, самому Revit,у и не нужны предопределенные размеры пластин, они, возможно, определяются автоматически в модели. Вот в AutoCAD'е вообще нет никаких доступных через палитру свойств 3D-тел (например, полученных при экспорте из Revit в AutoCAD) и приходится их определять через boundary box...
|
|||
![]() |
|
||||
Негропроект, инженегр-конструктор Регистрация: 16.02.2008
Черкассы
Сообщений: 903
|
|
|||
![]() |
|
||||
Не верблюд Регистрация: 07.06.2010
Москва
Сообщений: 1,179
|
YarUnderoaker, глянь еще вот эту тему, если не сложно
__________________
Мой блог по Revit |
|||
![]() |
|
||||
Негропроект, инженегр-конструктор Регистрация: 16.02.2008
Черкассы
Сообщений: 903
|
Смотрел, но пока посоветовать ничего не могу. Надо эксперементировать.
Нельзя ли все пластины проекта получить фильтром категории или класса? Кстати из солида можно понять к какой категории его элемент соответствует Код:
|
|||
![]() |
|
||||
Не верблюд Регистрация: 07.06.2010
Москва
Сообщений: 1,179
|
YarUnderoaker, нет, коллектор собирает только Element, а эти пластины - Subelement, он наследован напрямую от Object.
Получить категорию из солида - идея! Код по получение размеров пластины потестирую, спасибо.
__________________
Мой блог по Revit |
|||
![]() |
|
||||
Регистрация: 06.04.2015
Сообщений: 2,748
|
Интересно. А каким образом создается пластина в Revit 2019? Вручную к примеру. Я не знаток API Revit, но если пластина была создана, к примеру через эскиз, то значительно разумнее было бы программно искать этот самый эскиз на основании которого была создана пластина, а не солид полученный в итоге.
|
|||
![]() |
|
||||
Регистрация: 06.04.2015
Сообщений: 2,748
|
Странно это все. Получается вручную можно получить доступ к эскизу плиты, а через API нельзя. Тогда совершенно не понятно для чего нужен такой API.
|
|||
![]() |
|
||||
конструктор Регистрация: 14.06.2010
Ukraine, Lemberg
Сообщений: 25
![]() |
Спасибо Александру, он написал макрос который считает объём и массу пластин, даже тех которые входят в динамический узел (его можно взорвать). Посмотреть можно здесь. После тестирования можно сказать что:
1. После каждого изменения в геометрии нужно заходить в вкладку макрос и выполнять его вручную. 2. Макрос иногда глючит и выдает ошибку отказываясь пересчитывать последние изменения. Для нормального пересчета нужно сменить геометрию любой пластины, или поменять количество отверстий - потом поменять назад 3. Учитывается точный объём с учетом отверстий обычных и тех которые делают болты. 4. Пластины могут быть с любого материала - стекло, медь, дерево, но если в материале не заданы физические свойства, то есть нет плотности- макрос выдает ошибку. также возникли проблемы при попытке перенести макрос в другой файл - ругается что Имя типа или пространства имен "AdvanceSteel" отсутствует в пространстве имен "Autodesk" (пропущена ссылка на сборку?)(CS0234) |
|||
![]() |
|
||||
Регистрация: 25.09.2009
Сообщений: 169
|
Ребят, вы меня извините, я Revit 2019 еще не смотрел, но ваш ажиотаж относительно расчетов и выводов каких то параметров пластин мне совершенно непонятен.
В приложении семейство доски, фанеры для сборки опалубочного щита, и собственно сам опалубочный щит, категория "Генеральный план", сделано в версии 2016. Все обсуждаемые вами параметры получаются с помощью "параметров для отчетов". Не знаю, что там в 2019 намутили, могу только предположить, что соединения узлов стало делать еще проще. |
|||
![]() |
|
||||
инженер-конструктор Регистрация: 06.07.2012
Киев
Сообщений: 69
|
Цитата:
Вся суть проблемы в том что в узлах металлоконструкций уже нет отдельных семейств. Пластины рисуются прямо в программе, не открывая отдельного семейства, по типу как вы рисуете перекрытие или фундаментную плиту. И вот автодеск пошутил над всеми конструкторами сделав доступным только один параметр этого элемента, а именно толщину. Но для того чтоб посчитать спецификации этого мало. Добавить можно только глобальные параметры, но я уже пытался через них как то повлиять на эскиз пластины, не получилось. Вот люди знакомые с программированием пытаются всякими окольными путями таки получить эти заветные длина-ширина , для того чтоб можно было все обсчитать в спецификациях. П.С. Надеюсь в экстеншене что-то добавят или в патч-фиксе каком-то. |
|||
![]() |
|
||||
Регистрация: 25.09.2009
Сообщений: 169
|
А, ну ясно. Тогда обращаю ваше внимание что Dynamo является неотъемлемой частью Revit, и представляет собой достаточно простой (по крайней мере, для человека с высшим строительным образованием) инструмент визуального программирования. С помощью которого можно быстро получить все необходимые параметры и прописать их куда надо.
|
|||
![]() |
|
||||
конструктор, строитель Регистрация: 08.10.2006
Уфа
Сообщений: 651
![]() |
|
|||
![]() |
|
||||
Инженер-конструктор Регистрация: 13.10.2011
Москва
Сообщений: 2,359
|
Цитата:
DYnamo работает напрямую с API |
|||
![]() |
|
||||
Негропроект, инженегр-конструктор Регистрация: 16.02.2008
Черкассы
Сообщений: 903
|
На идее станции появилась идея добавить пластинам площадь и вес, голосуем колеги, куму не лень Plate schedule with area and weight
|
|||
![]() |
|
||||
Негропроект, инженегр-конструктор Регистрация: 16.02.2008
Черкассы
Сообщений: 903
|
Делаю сейчас марку АБ на небольшой навес. Практика показала еще несколько проблем:
1) Пластинам в составе соединения нельзя задавать значения параметров и выделять через спецификацию. Нельзя менять значения параметров через метки. 2) У пластин в составе соединения нет параметром марка и изготовитель Пришлось писать дополнительный код что-бы пронумеровать пластины (для этого их надо отсортировать по размерам). Что-бы задать группу конструктивных элементов для спецификации металопроката надо табом выделить отдельно каждую пластину и задать. Взрывать соединения на составные тоже не хочется - вдруг потом надо будет что-то поменять. В общем есть неудобства. |
|||
![]() |
|
||||
инженер-конструктор Регистрация: 06.07.2012
Киев
Сообщений: 69
|
Доброго дня YarUnderoaker
Пытаюсь использовать ваш макрос в другом документе, при сборке выдает 2 ошибки: C:\ProgramData\Autodesk\Revit\Macros\2019\Revit\AppHookup\Plate\Source\Plate\ThisApplication.cs(161,11) : Ошибка CS0246: Не удалось найти имя типа или пространства имен "FilerObject" (пропущена директива using или ссылка на сборку?) C:\ProgramData\Autodesk\Revit\Macros\2019\Revit\AppHookup\Plate\Source\Plate\ThisApplication.cs(205,10) : Ошибка CS0118: "Plate" является "пространство имен", но используется как "тип" Так как ранее макросы никогда не писал , и к сожалению совсем не разбираюсь в программировании, прошу помочь мне решить эту проблему. Макрос ваш просто скопировал. В принципе если делать сборку вашего макроса у меня на компьютере, то он тоже не собирается с теми же ошибками + добавляется 5 ошибок связанных с AdvanceSteel. |
|||
![]() |
|
||||
Негропроект, инженегр-конструктор Регистрация: 16.02.2008
Черкассы
Сообщений: 903
|
Для начала надо добавить ссылки на библиотеки
Для этого зайдите в Project->Add References -> .NET Assembly Browser -> Browse... Добавить файлы dll с такими же названиями из папки C:\Program Files\Autodesk\Revit 2019\AddIns\SteelConnections\ По ошибкам пока не понятно, возможно из-за отсутствия ссылок. |
|||
![]() |
|
||||
Негропроект, инженегр-конструктор Регистрация: 16.02.2008
Черкассы
Сообщений: 903
|
Могу еще поделится более усовершенсвованым макросом уровня приложения
Распакуйте архив и закиньте в папку C:\ProgramData\Autodesk\Revit\Macros\2019\Revit\AppHookup Но надо будет добавлять пластинам и каркасу параметры как в примере Последний раз редактировалось YarUnderoaker, 16.08.2018 в 16:32. |
|||
![]() |
|
||||
инженер-конструктор Регистрация: 06.07.2012
Киев
Сообщений: 69
|
Огромное спасибо все получилось, действительно не хватало библиотек.
----- добавлено через ~5 ч. ----- Цитата:
![]() Даже если я использую этот макрос в вашем примере у меня сначала запрашивает ЗД вид, кое как догадался что открыть надо ЗД конструктив ![]() ![]() |
|||
![]() |
|
||||
инженер-конструктор Регистрация: 06.07.2012
Киев
Сообщений: 69
|
Позволил себе немного изменить ваш макрос, приспособил его под шаблон Александра Зуева. Точно так же измененный макрос в архиве и файл примера
![]() Пример.rvt SteelSupp.rar Один вопрос остался непонятным - как то с помощью вашего макроса можно перенести параметр "Толщина" в общий параметр "Рзм.Толщина" ? |
|||
![]() |
|
||||
инженер-конструктор Регистрация: 06.07.2012
Киев
Сообщений: 69
|
Постараюсь описать как так получилось.
Работал с вашим макросом без проблем, ни каких ошибок не выдавало. Потом сделал в одном узле колонне "Укоротить", выставил угол необходимого среза и хотел на ту плоскость прилепить пластину. Прилепил, после этого начало выдавать вот эту ошибку. Также в параметрах экземпляра пластин в графе "Идентификация" появились стандартные параметры: "Изображение", "Коментарии", "Марка"(ранее их не было, в пластинах которые были созданы до этого тоже нет). В графе "Материалы и отделка" подтянутый мной общий параметр "О_Материал" поменялся местами с стандартным "Материал несущих конструкций". Пластины которые были созданы до этого и добавлены в стандартные узлы остались без изменений, но если разорвать связь этих пластин с узлами они становятся как новые - добавляются стандартные параметры в графе "Идентификация" и меняются местами параметры материала. Если удалить все пластины с такими параметрами то макрос работает как всегда. Если есть хоть одна пластина с измененными параметрами, выдает вот ту ошибку. По факту вышло так - все что создавалось до момента обрезки колонны работает с вашим макросом, все что создавалось или изменялось после этого не работает. Далее провожу эксперименты: Сделал новую пластину, вышло все так как описал выше - новые параметры и так далее - макрос не работает. Но когда добавил эту пластину в сборку с стандартным узлом параметры стали так как надо и макрос заработал. Я так понимаю что макрос не работает с пластинами которые не входят в сборки с узлами или узлы? |
|||
![]() |
|
||||
Негропроект, инженегр-конструктор Регистрация: 16.02.2008
Черкассы
Сообщений: 903
|
С отдельными пластинами не входящими в узлы работает (в том же примере есть такие). Но может случиласть какая-то нестандартная ситуация, все эти узлы, чесно говоря, сделаны через одно место - кусок кода эдванс стила прикрутили к ревиту.
Давайте какой-нибудь файл для теста, попробую решить проблему. |
|||
![]() |
|
||||
инженер-конструктор Регистрация: 06.07.2012
Киев
Сообщений: 69
|
https://drive.google.com/open?id=1AI...szjMI0QR9yvdlI - Ссылка на файл с Которым работал, уменьшил размер как мог, ниже 13,4 МБ так и не смог уменьшить, потому ссылка и на гугл драйв
https://drive.google.com/open?id=1a_...KDCvaHhPMh8oMb - Ссылка на мой измененный макрос. |
|||
![]() |
|
||||
инженер-конструктор Регистрация: 06.07.2012
Киев
Сообщений: 69
|
Вот с этого места по подробнее.
![]() Я уже разобрался как добавить в этот макрос внесение целого числа в нужные мне параметры. Могли бы вы мне подсказать как можно назначить материал в нужном мне параметре? Программирование начинает интересовать ![]() Спасибо что нашли ошибку, все работает. Последний раз редактировалось madragor, 06.06.2018 в 09:23. |
|||
![]() |
|
||||
инженер-конструктор Регистрация: 06.07.2012
Киев
Сообщений: 69
|
Цитата:
Это все тот же узел только сделан из плана, и главная балка с связями просто под углом к плоскости вида. Проблему обнаружил. В самом семействе были добавлены линии для отображения граней и скрытых граней. Они не обрезались узлом. Удалил все стало на свои места правда исчезли скрытые грани. Последний раз редактировалось madragor, 06.06.2018 в 10:05. |
|||
![]() |
|
||||
Негропроект, инженегр-конструктор Регистрация: 16.02.2008
Черкассы
Сообщений: 903
|
Цитата:
Код:
|
|||
![]() |
|
||||
конструктор, строитель Регистрация: 08.10.2006
Уфа
Сообщений: 651
![]() |
Я про эти линии и говорил. Только скорее всего их не стоило удалять, надо было только концы линий привязать к торцам 3D тела.
|
|||
![]() |
|
||||
инженер-конструктор Регистрация: 06.07.2012
Киев
Сообщений: 69
|
Они были привязаны к торцам. Проблему невидимых граней решил тем что пользуюсь командой "показать невидимые линии". Так что особых проблем не обнаружил, все невидимые грани отображаются, правда только на средней детализации.
|
|||
![]() |
|
||||
Негропроект, инженегр-конструктор Регистрация: 16.02.2008
Черкассы
Сообщений: 903
|
Можно, но надо понять почему так происходит.
Еще есть отдельная проблема - масса считается по объему, а в объеме учитываются отверстия. .... В коде надо подправить одну константу, в строке double vol = pl.Volume / (1000000 * 29.504); заменить на double vol = pl.Volume / (1000000 * 28.317); ----- добавлено через ~27 мин. ----- Обновил архив в посте 28. Заменил константу и добавил проверку материала на наличие физических параметров. Последний раз редактировалось YarUnderoaker, 16.08.2018 в 16:09. Причина: добавлено |
|||
![]() |
|
||||
инженер-конструктор Регистрация: 06.07.2012
Киев
Сообщений: 69
|
Вообщем потыкал узлы. Все печальнее чем в 19.
Да добавили нужные параметры и массу вы можете в легкую получить как черновую так и фактическую. НО!!!!! Я не знаю какому "гению" пришла замечательная идея запретить редактирование общих параметров у подчиненных элементов узлов, но он это сделал. По факту: если вы создаете просто пластину вы можете менять общие параметры, если брать относительно шаблона А. Зуева, то такие параметры как О_Обозначение, О_Наименование и т.д, но как только вы сделали узел, или вставили шаблонный узел, все пластины и профили не редактируются. Это напрочь убило возможность сделать хоть какую-то спецификацию, так как нам в ней нужны не только масса и количество но и название и тип профиля или толщина пластины с условным обозначением. Теперь все это невозможно внести. А базовых параметров у пластины, куда бы это можно было вписать, просто НЕТ!!! Последний раз редактировалось madragor, 19.04.2019 в 13:57. |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Макрос VBA Excel для извлечения таблиц из линий, полилиний, текста из DWG файлов в Excel с помощью NanoCAD/AutoCAD | JZY | Готовые программы | 8 | 14.07.2016 06:31 |
Использование Revit MEP для проектирования промышленных объектов. | andr_g | Revit | 6 | 29.10.2015 20:59 |
Использование Revit Structure для конструирования мостов | AlexYoung | Revit | 26 | 20.02.2012 20:21 |
Заменимость Revit Architecture Revit Structure'м | cardinalus | Revit | 4 | 30.06.2011 10:58 |
Балки в Revit MEP. Revit и СПДС | Минька | Revit | 1 | 25.04.2011 05:51 |