Импорт данных в Revit через IFC формат или Revit .Net API (VB.NET)

Автор Тема: Импорт данных в Revit через IFC формат или Revit .Net API (VB.NET)  (Прочитано 6965 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн GIPPYАвтор темы

  • ADN OPEN
  • **
  • Сообщений: 65
  • Карма: 0
Всем привет.

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

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

Спасибо всем, кто откликнется.
« Последнее редактирование: 30-08-2020, 19:21:38 от Александр Ривилис »

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13830
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
GIPPY,
Вообще-то , эта операция называется "Импорт", а не "Экспорт". Поэтому название темы я исправил. Кроме того импорт из IFC и вставка из базы данных - это вообще-то совсем разные вещи...
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн GIPPYАвтор темы

  • ADN OPEN
  • **
  • Сообщений: 65
  • Карма: 0
Кроме того импорт из IFC и вставка из базы данных - это вообще-то совсем разные вещи...

Поясняю, создаем конвертером файл IFC с использованием данных из базы данных, и грузим в Revit.

Оффлайн trir

  • ADN Club
  • ****
  • Сообщений: 470
  • Карма: 63
Цитировать
создаем конвертером файл IFC
изучай Open Cascade

Оффлайн RevitTormentor

  • ADN OPEN
  • ***
  • Сообщений: 162
  • Карма: 6
Лучше создать WCF сервис внутри Ревита. И через него создавать, удалять и менять что хочется
Тут https://thebuildingcoder.typepad.com/blog/2018/05/drive-revit-via-a-wcf-service-wall-directions-and-parameters.html Александр поправил код Виктора для 2019 версии.

Оффлайн GIPPYАвтор темы

  • ADN OPEN
  • **
  • Сообщений: 65
  • Карма: 0
К сожалению, мне нужно именно создать объект из имеющейся базы данных без манипуляций в самом ревите....
Никто не откликается, хотя это возможно - https://www.autodesk.ru/autodesk-developer-network/software-platform-russian/develop-revit

Оффлайн RevitTormentor

  • ADN OPEN
  • ***
  • Сообщений: 162
  • Карма: 6
Создать объект в Ревите?
И при этом без манипуляций в Ревите?

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

Как плагин для Ревита может создавать объект в Ревите без манипуляций в Ревите я не знаю. Может более знающие подскажут

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13830
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
К сожалению, мне нужно именно создать объект из имеющейся базы данных без манипуляций в самом ревите....
Что такое "без манипуляций в самом ревите"? Как минимум должен быть запущен Revit и пользователь должен запустить созданный вами плагин (нажать иконку плагина в ленте).
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн GIPPYАвтор темы

  • ADN OPEN
  • **
  • Сообщений: 65
  • Карма: 0
Что такое "без манипуляций в самом ревите"? Как минимум должен быть запущен Revit и пользователь должен запустить созданный вами плагин (нажать иконку плагина в ленте).

Это и так понятно. Речь и идет о плагине, создаваемом сторонним приложением, который потом грузим в Revit.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13830
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Речь и идет о плагине, создаваемом сторонним приложением, который потом грузим в Revit.
Стороннее приложение, которое может создавать плагин для Revit - это MS Visual Studio. Или ты хочешь на лету из своего внешнего приложения создавать C#-код, компилировать его и подсовывать Revit? IMHO - это бессмыслица.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн GIPPYАвтор темы

  • ADN OPEN
  • **
  • Сообщений: 65
  • Карма: 0
Стороннее приложение, которое может создавать плагин для Revit - это MS Visual Studio. Или ты хочешь на лету из своего внешнего приложения создавать C#-код, компилировать его и подсовывать Revit? IMHO - это бессмыслица.

Я и написал в теме vb.net, это и есть MS Visual Studio. Приложение на vb.net один раз созданное и скомпилированное. Суть его работы создавать плагин для Revita, использую данные о строительных конструкция из внешней базы данных. База данных может меняться по содержанию, после того как она сформирована, создаем плагин и грузим в Revit. Цель - максимально автоматизировать создание определенных строительных конструкций в Revit.

Оффлайн RevitTormentor

  • ADN OPEN
  • ***
  • Сообщений: 162
  • Карма: 6
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.

Потом приходит понимание что вся эта защита дурь ненужная. Что и взламывать то никто не будет (проще и быстрее написать аналог) и спокойно пишете свой плагин дальше.
 :)

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13830
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
RevitTormentor,
Плюсанул два раза за п. 1) и первый абзац п. 2). По поводу WPF - это не обязательно.
Остальное остроумно. :)
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн GIPPYАвтор темы

  • ADN OPEN
  • **
  • Сообщений: 65
  • Карма: 0
всей этой хренотенью у меня нет времени заниматься, мне нужен человек, который прошел этот путь и готов за $ поделиться опытом или реализовать конкретную задачу, по моему вы все слишком усложняете, как говориться "делаете из мухи слона"...

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13830
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
всей этой хренотенью у меня нет времени заниматься, мне нужен человек, который прошел этот путь и готов за $ поделиться опытом или реализовать конкретную задачу, по моему вы все слишком усложняете, как говориться "делаете из мухи слона"...
Очень похоже, что вы ошиблись разделом форума. Вам сюда: https://adn-cis.org/forum/index.php?board=38.0
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение