Сообщество программистов Autodesk в СНГ
ADN Club => Revit API => Тема начата: GIPPY от 30-08-2020, 19:13:20
-
Всем привет.
Начал изучать Revit и все, что с ним связано. Хочу автоматизировать создание в модели Revit объектов строительных конструкций, данные по которым хранятся в условной базе данных (например, в таблицах Excel).
Ищу наставника, который наставит на путь истинный и поможет реализовать задуманное.
Спасибо всем, кто откликнется.
-
GIPPY,
Вообще-то , эта операция называется "Импорт", а не "Экспорт". Поэтому название темы я исправил. Кроме того импорт из IFC и вставка из базы данных - это вообще-то совсем разные вещи...
-
Кроме того импорт из IFC и вставка из базы данных - это вообще-то совсем разные вещи...
Поясняю, создаем конвертером файл IFC с использованием данных из базы данных, и грузим в Revit.
-
создаем конвертером файл IFC
изучай Open Cascade (https://ru.wikipedia.org/wiki/Open_Cascade)
-
Лучше создать 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 версии.
-
К сожалению, мне нужно именно создать объект из имеющейся базы данных без манипуляций в самом ревите....
Никто не откликается, хотя это возможно - https://www.autodesk.ru/autodesk-developer-network/software-platform-russian/develop-revit
-
Создать объект в Ревите?
И при этом без манипуляций в Ревите?
По ссылке Вы смотрите создание своего плагина для Ревита. Этот плагин - это то чем Вы дополняете недостающий Вам функционал в Ревите. Так сказать расширяете его функционал. Ваш плагин может брать данные хоть из базы, хоть из Екселя, хоть из текстового файла, а потом средствами Ревита построить стены, перекрытия балок и окон.
Как плагин для Ревита может создавать объект в Ревите без манипуляций в Ревите я не знаю. Может более знающие подскажут
-
К сожалению, мне нужно именно создать объект из имеющейся базы данных без манипуляций в самом ревите....
Что такое "без манипуляций в самом ревите"? Как минимум должен быть запущен Revit и пользователь должен запустить созданный вами плагин (нажать иконку плагина в ленте).
-
Что такое "без манипуляций в самом ревите"? Как минимум должен быть запущен Revit и пользователь должен запустить созданный вами плагин (нажать иконку плагина в ленте).
Это и так понятно. Речь и идет о плагине, создаваемом сторонним приложением, который потом грузим в Revit.
-
Речь и идет о плагине, создаваемом сторонним приложением, который потом грузим в Revit.
Стороннее приложение, которое может создавать плагин для Revit - это MS Visual Studio. Или ты хочешь на лету из своего внешнего приложения создавать C#-код, компилировать его и подсовывать Revit? IMHO - это бессмыслица.
-
Стороннее приложение, которое может создавать плагин для Revit - это MS Visual Studio. Или ты хочешь на лету из своего внешнего приложения создавать C#-код, компилировать его и подсовывать Revit? IMHO - это бессмыслица.
Я и написал в теме vb.net, это и есть MS Visual Studio. Приложение на vb.net один раз созданное и скомпилированное. Суть его работы создавать плагин для Revita, использую данные о строительных конструкция из внешней базы данных. База данных может меняться по содержанию, после того как она сформирована, создаем плагин и грузим в Revit. Цель - максимально автоматизировать создание определенных строительных конструкций в Revit.
-
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.
Потом приходит понимание что вся эта защита дурь ненужная. Что и взламывать то никто не будет (проще и быстрее написать аналог) и спокойно пишете свой плагин дальше.
:)
-
RevitTormentor,
Плюсанул два раза за п. 1) и первый абзац п. 2). По поводу WPF - это не обязательно.
Остальное остроумно. :)
-
всей этой хренотенью у меня нет времени заниматься, мне нужен человек, который прошел этот путь и готов за $ поделиться опытом или реализовать конкретную задачу, по моему вы все слишком усложняете, как говориться "делаете из мухи слона"...
-
всей этой хренотенью у меня нет времени заниматься, мне нужен человек, который прошел этот путь и готов за $ поделиться опытом или реализовать конкретную задачу, по моему вы все слишком усложняете, как говориться "делаете из мухи слона"...
Очень похоже, что вы ошиблись разделом форума. Вам сюда: https://adn-cis.org/forum/index.php?board=38.0
-
там тоже есть моя тема 134 просмотра и 0 ответов
-
там тоже есть моя тема 134 просмотра и 0 ответов
Ну видимо эта тема никому из разработчиков не показалась интересной. Увы. Кстати в правилах того раздела не сказано, что нужно отвечать в теме. Скорее вам бы написали в личные сообщения.
-
Если там написать не $ а $$$$$ то дело сдвинется быстрее.
А если ещё и выложить Тех задание на разработку или дать $ на разработку этого Тех задания, то вместо "хренотени" может и плагин неплохой получиться.
:)
-
RevitTormentor
А если еще не писать: как говориться "делаете из мухи слона"...
т.е. фактически обнулять труд программиста, то вероятность найти того, кто согласится этим заняться, повысится. IMHO.
-
Да Александр, полностью согласен.
-
да не было личных сообщений, договариваться даже не с кем, на другом форуме нашел человека, но работает на С#, но у меня все на vb.net, знаю, что на нем тоже можно сделать....
-
но у меня все на vb.net, знаю, что на нем тоже можно сделать....
Можно то можно, но примеров на нём значительно меньше, возможности по сравнению с C# ограничены. При этом есть конвертеры VB.NET<->C#.
Если есть жесткое требование использовать VB.NET, то вероятность найти программиста, который возьмётся за решение этой задачи уменьшается в разы.
-
А всё - это что? Это сколько?
Тут два вопроса:
1) Надо всё-таки помочь Вам научиться?
2) Выполнить полностью с нуля Ваш функционал?
1) Если хочется научиться то всё зависит от Вас. Находите сайт где код конвертируется vb.net to C# или C# to vb.net И бесплатно по форумам добиваете. Или заказываете за $ на C# отдельные куски и конвертируете под себя на vb.net
2) В форуме находите в сообщениях одного товарища он всё пишет на vb.net. И закидываете его личку по 3 сообщения в час. Может согласится.
3) Если денег достаточно, то просто заказываете полный функционал. А на чём он будет выполнен, может не так уж и важно будет.
-
я бы попробовал
кстати в одном решении могут быть проекты и на VB.NET и на C# - это вообще не проблема
-
я бы попробовал
кстати в одном решении могут быть проекты и на VB.NET и на C# - это вообще не проблема
спасибо за ответ, написал в личку