Сообщество программистов Autodesk в СНГ

ADN Club => Revit API => Тема начата: GIPPY от 30-08-2020, 19:13:20

Название: Импорт данных в Revit через IFC формат или Revit .Net API (VB.NET)
Отправлено: GIPPY от 30-08-2020, 19:13:20
Всем привет.

Начал изучать Revit  и все, что с ним связано. Хочу автоматизировать создание в модели Revit объектов строительных конструкций, данные по которым хранятся в условной базе данных (например, в таблицах Excel).

Ищу наставника, который наставит на путь истинный и поможет реализовать задуманное.

Спасибо всем, кто откликнется.
Название: Re: Импорт данных в Revit через IFC формат или Revit .Net API (VB.NET)
Отправлено: Александр Ривилис от 30-08-2020, 19:23:29
GIPPY,
Вообще-то , эта операция называется "Импорт", а не "Экспорт". Поэтому название темы я исправил. Кроме того импорт из IFC и вставка из базы данных - это вообще-то совсем разные вещи...
Название: Re: Импорт данных в Revit через IFC формат или Revit .Net API (VB.NET)
Отправлено: GIPPY от 30-08-2020, 20:06:29
Кроме того импорт из IFC и вставка из базы данных - это вообще-то совсем разные вещи...

Поясняю, создаем конвертером файл IFC с использованием данных из базы данных, и грузим в Revit.
Название: Re: Импорт данных в Revit через IFC формат или Revit .Net API (VB.NET)
Отправлено: trir от 31-08-2020, 12:45:36
Цитировать
создаем конвертером файл IFC
изучай Open Cascade (https://ru.wikipedia.org/wiki/Open_Cascade)
Название: Re: Импорт данных в Revit через IFC формат или Revit .Net API (VB.NET)
Отправлено: RevitTormentor от 05-09-2020, 04:02:36
Лучше создать WCF сервис внутри Ревита. И через него создавать, удалять и менять что хочется
Тут https://thebuildingcoder.typepad.com/blog/2018/05/drive-revit-via-a-wcf-service-wall-directions-and-parameters.html (https://thebuildingcoder.typepad.com/blog/2018/05/drive-revit-via-a-wcf-service-wall-directions-and-parameters.html) Александр поправил код Виктора для 2019 версии.
Название: Re: Импорт данных в Revit через IFC формат или Revit .Net API (VB.NET)
Отправлено: GIPPY от 05-09-2020, 16:29:52
К сожалению, мне нужно именно создать объект из имеющейся базы данных без манипуляций в самом ревите....
Никто не откликается, хотя это возможно - https://www.autodesk.ru/autodesk-developer-network/software-platform-russian/develop-revit
Название: Re: Импорт данных в Revit через IFC формат или Revit .Net API (VB.NET)
Отправлено: RevitTormentor от 05-09-2020, 16:37:26
Создать объект в Ревите?
И при этом без манипуляций в Ревите?

По ссылке Вы смотрите создание своего плагина для Ревита. Этот плагин - это то чем Вы дополняете недостающий Вам функционал в Ревите. Так сказать расширяете его функционал. Ваш плагин может брать данные хоть из базы, хоть из Екселя, хоть из текстового файла, а потом средствами Ревита построить стены, перекрытия балок и окон.

Как плагин для Ревита может создавать объект в Ревите без манипуляций в Ревите я не знаю. Может более знающие подскажут
Название: Re: Импорт данных в Revit через IFC формат или Revit .Net API (VB.NET)
Отправлено: Александр Ривилис от 05-09-2020, 19:38:49
К сожалению, мне нужно именно создать объект из имеющейся базы данных без манипуляций в самом ревите....
Что такое "без манипуляций в самом ревите"? Как минимум должен быть запущен Revit и пользователь должен запустить созданный вами плагин (нажать иконку плагина в ленте).
Название: Re: Импорт данных в Revit через IFC формат или Revit .Net API (VB.NET)
Отправлено: GIPPY от 06-09-2020, 09:12:25
Что такое "без манипуляций в самом ревите"? Как минимум должен быть запущен Revit и пользователь должен запустить созданный вами плагин (нажать иконку плагина в ленте).

Это и так понятно. Речь и идет о плагине, создаваемом сторонним приложением, который потом грузим в Revit.
Название: Re: Импорт данных в Revit через IFC формат или Revit .Net API (VB.NET)
Отправлено: Александр Ривилис от 06-09-2020, 12:31:52
Речь и идет о плагине, создаваемом сторонним приложением, который потом грузим в Revit.
Стороннее приложение, которое может создавать плагин для Revit - это MS Visual Studio. Или ты хочешь на лету из своего внешнего приложения создавать C#-код, компилировать его и подсовывать Revit? IMHO - это бессмыслица.
Название: Re: Импорт данных в Revit через IFC формат или Revit .Net API (VB.NET)
Отправлено: GIPPY от 06-09-2020, 17:59:57
Стороннее приложение, которое может создавать плагин для Revit - это MS Visual Studio. Или ты хочешь на лету из своего внешнего приложения создавать C#-код, компилировать его и подсовывать Revit? IMHO - это бессмыслица.

Я и написал в теме vb.net, это и есть MS Visual Studio. Приложение на vb.net один раз созданное и скомпилированное. Суть его работы создавать плагин для Revita, использую данные о строительных конструкция из внешней базы данных. База данных может меняться по содержанию, после того как она сформирована, создаем плагин и грузим в Revit. Цель - максимально автоматизировать создание определенных строительных конструкций в Revit.
Название: Re: Импорт данных в Revit через IFC формат или Revit .Net API (VB.NET)
Отправлено: RevitTormentor от 06-09-2020, 19:52:41
1) Если Вы не состоявшийся программист - забудьте про vb.net. Начните сразу с C#. Может быть но с очень большим натягом - Питон. Но лучше C#.
2) Я так понимаю что создать один раз откомпилированную программу, которая потом создаёт плагины для Ревита, это имелось ввиду именно сам плагин один раз откомпилированный для Ревита и работающий, и периодически обновляемый по своей функциональности.

Если второй пункт правильный, то всё нужно - начать делать. У Вас в предыдущем посте ссылка на первый плагин - начните с него.

Плагин для Ревита - это в Visual Studio WPF приложение, которое Вы потом измените на библиотеку dll.
Если где-то на сайтах прочитаете, что к WPF надо изучать паттерн MVVM, закрываете данный сайт. Пока это лишнее, срок релиза плагина увеличится на год, два. Да и вообще MVVM для Ревита, это что-то страшное. Вообще избегайте, где пишут MVVM MVP паттерн и прочие лишние слова мешающие "настоящему" программированию. :)

Далее добавляете в закладки в браузере:
- этот форум adn-cis.org/forum/index.php?board=24.0
- thebuildingcoder.typepad.com
- revitapidocs.com

Хотя по правильному последовательность должна начинаться с revitapidocs.com

Потом устанавливаете RevitLookUp (гугл всё найдёт) - пригодится потом.

Потом скачиваете Revit SDK где-то в гугл вбиваете, и скачиваете для вашей версии Ревита. Там примеры кода на 99 процентов случаев для плагина для Ревита (только для Ревита).



Примеры кода необходимого Вам для работы вашего плагина из Ревита с Вашей базой, отдельно в HABR StackOverFlow.com .ru

Всё, что в Ревит SDK читать, не понимая про что код, сложно. Там код пишется не по горизонтали, а по вертикали (видимо монитор с очень узким разрешением), но потом (после появления ясности в голове 0,5-1 год) оттуда можно взять много ценной информации.

Поэтому на первых порах вбиваете в гугл:
Revit C# и далее то, что надо найти. Например "Revit C# Create Wall" типа создание стены.
Если знаете английский пишите на английском, если нет - Гугл переводчик и переводите русский на английский.

Гугл предательски будет Вам выдавать "правильные" ссылки на revitapidocs.com (и это правильно начинать оттуда), но по началу ищете ссылки типа https://thebuildingcoder.typepad.com/blog/2017/11/automatic-wall-creation.html или StackOverFlow

Когда намучаетесь с разными вариантами и непонятными объяснениями, заходите сюда, и в поиске сверху справа вбиваете Ревит или Revit и далее то, что хотите найти. Не 100% но большинство вопросов, волнующих Вас при написании плагина для Ревита, здесь найдёте.

Если что-то не заработает, создаёте новую ветку с Вашим вопросом, и Вам напишут, что это уже обсуждалось и кинут ссылку, поэтому в следующий раз, прежде чем создавать новую ветку, вбейте справа сверху в поиске Ревит или Revit и далее что нужно.

Потом, когда у Вас Ваша первая кнопка построит стену, можно пройти пару каток в CS:GO.

Потом в Visual Studio создаёте новый WPF проект, обязательно новый, и пробуете вывести через MessageBox.Show("Количество строк в моей базе: " + Item.Count);

Потом устанавливаете что-то типа Navicat для работы с базами данных. И смотрите соответствует ли количество строк в базе тому, что у Вас вывелось в окошке.

Если совпало, снова 3 катки в CS:GO. Если не совпало то 5.

Потом регистрируетесь на форуме типа cyberforum там какой-то и берёте оттуда код для Вашего не Ревитовского (базы данных, вывод сообщений, многопоточность) функционала из "лабораторных" студентов. Код там, как на любом форуме реально полезный иногда находится.

Потом отваливается пароль от форума, пока восстанавливаете можно ещё пару каток в CS:GO.

После чего в Вашем отдельном WPF приложении выделяете код, CTRL+C, переходите в Ваш плагин и вставляете CTRL+V в нужное место.

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

Ну и высший пилотаж, скачиваете какую-нибудь" хреновину-декомпилятор Spy какой-то есть. Открываете в этой программе уже что-то готовое, и смотрите. Понимаете при этом, что Ваш плагин так же может кто-то просмотреть, и его не защитить никак.
Бросаете плагин, снимаете стресс - 10 каток в CS:GO.

Потом приходит понимание что вся эта защита дурь ненужная. Что и взламывать то никто не будет (проще и быстрее написать аналог) и спокойно пишете свой плагин дальше.
 :)
Название: Re: Импорт данных в Revit через IFC формат или Revit .Net API (VB.NET)
Отправлено: Александр Ривилис от 06-09-2020, 20:03:10
RevitTormentor,
Плюсанул два раза за п. 1) и первый абзац п. 2). По поводу WPF - это не обязательно.
Остальное остроумно. :)
Название: Re: Импорт данных в Revit через IFC формат или Revit .Net API (VB.NET)
Отправлено: GIPPY от 06-09-2020, 20:42:28
всей этой хренотенью у меня нет времени заниматься, мне нужен человек, который прошел этот путь и готов за $ поделиться опытом или реализовать конкретную задачу, по моему вы все слишком усложняете, как говориться "делаете из мухи слона"...
Название: Re: Импорт данных в Revit через IFC формат или Revit .Net API (VB.NET)
Отправлено: Александр Ривилис от 06-09-2020, 20:49:14
всей этой хренотенью у меня нет времени заниматься, мне нужен человек, который прошел этот путь и готов за $ поделиться опытом или реализовать конкретную задачу, по моему вы все слишком усложняете, как говориться "делаете из мухи слона"...
Очень похоже, что вы ошиблись разделом форума. Вам сюда: https://adn-cis.org/forum/index.php?board=38.0
Название: Re: Импорт данных в Revit через IFC формат или Revit .Net API (VB.NET)
Отправлено: GIPPY от 06-09-2020, 20:53:38
там тоже есть моя тема 134 просмотра и 0 ответов
Название: Re: Импорт данных в Revit через IFC формат или Revit .Net API (VB.NET)
Отправлено: Александр Ривилис от 06-09-2020, 20:56:43
там тоже есть моя тема 134 просмотра и 0 ответов
Ну видимо эта тема никому из разработчиков не показалась интересной. Увы. Кстати в правилах того раздела не сказано, что нужно отвечать в теме. Скорее вам бы написали в личные сообщения.
Название: Re: Импорт данных в Revit через IFC формат или Revit .Net API (VB.NET)
Отправлено: RevitTormentor от 06-09-2020, 21:02:37
Если там написать не $ а $$$$$ то дело сдвинется быстрее.
А если ещё и выложить Тех задание на разработку или дать $ на разработку этого Тех задания, то вместо "хренотени" может и плагин неплохой получиться.
 :)
Название: Re: Импорт данных в Revit через IFC формат или Revit .Net API (VB.NET)
Отправлено: Александр Ривилис от 06-09-2020, 21:06:36
RevitTormentor
А если еще не писать:
как говориться "делаете из мухи слона"...
т.е. фактически обнулять труд программиста, то вероятность найти того, кто согласится этим заняться, повысится. IMHO.
Название: Re: Импорт данных в Revit через IFC формат или Revit .Net API (VB.NET)
Отправлено: RevitTormentor от 06-09-2020, 21:09:59
Да Александр, полностью согласен.
Название: Re: Импорт данных в Revit через IFC формат или Revit .Net API (VB.NET)
Отправлено: GIPPY от 06-09-2020, 21:14:07
да не было личных сообщений, договариваться даже не с кем, на другом форуме нашел человека, но работает на С#, но у меня все на vb.net, знаю, что на нем тоже можно сделать....
Название: Re: Импорт данных в Revit через IFC формат или Revit .Net API (VB.NET)
Отправлено: Александр Ривилис от 06-09-2020, 21:30:08
но у меня все на vb.net, знаю, что на нем тоже можно сделать....
Можно то можно, но примеров на нём значительно меньше, возможности по сравнению с C# ограничены. При этом есть конвертеры VB.NET<->C#.
Если есть жесткое требование использовать VB.NET, то вероятность найти программиста, который возьмётся за решение этой задачи уменьшается в разы.
Название: Re: Импорт данных в Revit через IFC формат или Revit .Net API (VB.NET)
Отправлено: RevitTormentor от 06-09-2020, 21:31:08
А всё - это что? Это сколько?
Тут два вопроса:

1) Надо всё-таки помочь Вам научиться?
2) Выполнить полностью с нуля Ваш функционал?


1) Если хочется научиться то всё зависит от Вас. Находите сайт где код конвертируется vb.net to C# или C# to vb.net И бесплатно по форумам добиваете. Или заказываете за $ на C# отдельные куски и конвертируете под себя на vb.net
2) В форуме находите в сообщениях одного товарища он всё пишет на vb.net. И закидываете его личку по 3 сообщения в час. Может согласится.
3) Если денег достаточно, то просто заказываете полный функционал. А на чём он будет выполнен, может не так уж и важно будет.
Название: Re: Импорт данных в Revit через IFC формат или Revit .Net API (VB.NET)
Отправлено: trir от 08-09-2020, 12:21:05
я бы попробовал
кстати в одном решении могут быть проекты и на VB.NET и на C# - это вообще не проблема
Название: Re: Импорт данных в Revit через IFC формат или Revit .Net API (VB.NET)
Отправлено: GIPPY от 08-09-2020, 16:54:11
я бы попробовал
кстати в одном решении могут быть проекты и на VB.NET и на C# - это вообще не проблема

спасибо за ответ, написал в личку