понедельник, 4 января 2016 г.

Revit и Python в перспективе.

              Как следствие статьи  начну дальнейшее расследование и пояснение о всех преимуществах Python исключительно для инженерных изысканий в Revit.
              Про маленький экскурс в историю Python и графического программирования я уже давал не так давно. Но итог не такой уж и радостный , большая часть людей кто хочет что то делать вообще не поняла о чем речь и задает одни и те же вопросы и на форумах и мне лично.
             Перспективность Python в том что он напрямую поддерживает сотни различных библиотек , например NumPy - библиотека математических классов для сложных инженерных расчетов на уровне производительности  C++(хотя вру, на некоторых задачах разница в 70 раз и не в пользу Python), а Dynamo увы нам ничего не дает в замен.  Только встроенную в ядро питона "math" - Mathematical functions.Вопросы производительности в Python решаются автоматически.
             Python как и любой язык может использовать уже разработанные библиотеки, через функцию:



from math import *
тут мы просто импортируем библиотеку переменных математических функций. И таких библиотек мы может создавать как сами сотни миллионов ....миллиардов , так можем уже использовать готовые "велосипеды".
             Для написания скриптов Python идеален , он само совершенство , но в Dynamo мы видим его базовый обрезок. Нам многое не дают сделать. Инженерные задачи требуют не просто неких базовых возможностей, а всего того что есть во всех языках. И что же нам не хватает для счастливой работы ? это компиляция исходного кода ! если мы пишем код на Python нам необходимо его завести на машине пользователя. И для этого нам его нужно скомпилировать в набор единиц и нулей (двоичный или восьмеричный код), например:
01010101010111010101
                И что нам делать когда у нас есть огромная задача которая использует один и тот же блок кода ? начну раскрывать маленькие секреты , вот тут Python ровном счетом ничего нам не даст, так как изначально Python скриптовый динамический язык из разряда open source то мы никогда не дождемся компилятора. Когда у нас некая функция прошла коллектор через фильтр нам проще эту функцию объявить новым классом объектов и сделать библиотеку.  А если не дождемся то нам либо внедрять интерпретатор (Python) в саму программу Revit , например RevitPythonShell либо использовать обрубок Dynamo который в свою очередь так же интерпретирует базовые возможности языка.
              Есть конечно же решение компиляции Python в .exe:


                Но это уже нечто иное , это решение задачи по использованию информации внутри модели Revit и использованию ее для сторонней программы на базе Python. И это совершенно не то что нам нужно , это намного более глубокая тема нежели решение инженерных задач в revit. Эта задача по разработке своей платформы с тесной связкой с revit, и как итог своя платформа . Но вопрос в шифровании если это не будет открытый продукт.......
                Итак если у нас задача в открытии приложения любым пользователем то увы Python нам ничего не ответит и не даст никакого решения, мы не можем из Python получить dynamic link library (dll).Но увы я немного лукавлю, конечно все возможно , например тут один из методов :


             Я им не пользуюсь , хотя  уже только каких опытов не ставит с компиляцией.
А в основном использую такой :


               Разница небольшая . Оба варианта это костыли.....хотя второй это темный лес , это использование API Python для включения блоков кода Python в С/С++ , на первый взгляд все плачевно , но это только на первый , дальше все пойдет как по маслу :). Для этого скачиваем сам Python c www.python.org и идем по пути C:\Users\BIMkiller\AppData\Local\Programs\Python\Python35-32\Doc\python351.chm и смотрим саму документацию как это все осуществляется. На русском языке я много искал информации по бросил какие либо попытки.
              Но зачем нам весь этот геморрой ? не проще ли вообще отказаться от Python и искать решение на компилирующих языках , таких как С/C++ ? я лично пока не знаю ответа , лично меня пока что подкупает простота самого языка , ведь в этом и была его изначальная задумка , упростить алгоритм написания скриптов для того или иного программного обеспечения.
             Некий ответ на вопрос выше дает так называемый Cython , это интеграция Python в C язык. Там тоже есть подводные камни , но лично мне он не подходит так как этот способ так же не дает возможности компиляции своей библиотеки объектов , а только готовое приложение но я не альтруист :

           
              Но в общих чертах стоит ознакомится с этим кодом. Он изначально подкупал тех программистов которых хотели переманить из C++  в Python но без лишней крови.
              Ну вот мы в принципе кое как решили вопрос с динамическими библиотеками в динамическом языке Python и его будущего!!!
              Но что дальше ? может плюнуть на все это ? и просто отвернутся от Python и уж тем более от Dynamo ? я скажу не стоит , Dynamo сам по себе не плох , но его функционал и предназначение не решают моих вопросов и уж никак не повышают производительность труда инженера , за чей труд в силу сложившихся исторических факторов платят все меньше и меньше ...... Каким путем идти вам ,я не могу сказать , я всего лишь указал некие пути развития , которые могут указать решение некоторых проблем раз и навсегда . На мой взгляд аббревиатура BIM уже очень сильно подпортила крови не только мне но и очень многим инженерам. Все больше и больше я слышу нареканий от рабочих инженеров. Сама отрасль в данный момент переживает глубокий кризис , сам autodesk уже запутался чего же он хочет, от обновления к обновлению каких либо заметных результатов не происходит. Огромное количество пожеланий пользователей за бортом прогресса. Под эгидой BIM все больше и больше проектов из разряда абстракций , один и тот же исходный код в разных обертках , простое зарабатывание денег на воздухе. Хотя мне хочется напомнить что BIM это информационная модель здания, а не проекта , отсюда следует что инженер должен создавать информацию для конечного звена - службы эксплуатации, не говоря о всех промежуточных звеньях. Если говорить экономическим языком , стоимость проекта - 600р/м2 (и то хорошо если так ) , себестоимость м2 здания 31000 монолит , 15000 мет. каркасник(не путать с коммерческой ценой) А уж тех надзору глубоко по барабану проблемы  BIM в том виде в котором его рисуют не только autodesk но и учебные центры. Сам по себе тот же BIM менеджер человек который запутывает других  из за того что все на костылях, в итоге хромают все. Инженерные дисциплины и задачи из разряда точных наук, везде должно быть явное решение, не явность рождает несколько решений одно из которых ложное, так не должно быть..........Но скоро все изменится с Revit ........или без его :)

               P.S. Используя парадигмы The Zen of Python можно сказать следующее "сложное лучше чем запутанное, явное лучше чем неявное".
            

29 комментариев:

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

    "Но итог не такой уж и радостный , большая часть людей кто хочет что то делать вообще не поняла о чем речь"
    Может и не поняла аудитория, потому что автор сам не понимает что пишет. Подробнее расписываю ниже.

    1. "Перспективность Python в том что он напрямую поддерживает сотни различных библиотек , например NumPy"
    Python может и поддерживает, но с Revit мы используем диалект IronPython, а не классический мультиплатформенный Python. Впрочем, упомянутая библиотека NumPy есть и под него (соответственно переделанная под .NET).
    Просто API (программные интерфейсы), которые почему-то автор постоянно называет исходниками Ревита, построены на обертках .NET и соответственно их можно использовать с помощью любого языка для этой платформы, что и делают создатели плагинов (на любом .NET языке), создатели скриптов (C#, VB.NET), сам автор, используя RevitPythonShell, реализующий этот самый IronPython и, конечно, те,к то работает с Dynamo (ноды используют c#, а специальный нод Python, как не трудно догадаться - тот же самый IronPython)

    2. "но в Dynamo мы видим его базовый обрезок. Нам многое не дают сделать"
    Чушь. См. пункт 1. Все там дают сделать,а по другому и быть не может. В Dynamo такой-же диалект IronPython, как и в Python Shell (который является по сути оберткой над библиотеками .NET) и имеет все те-же возможности. Можно юзать любые .NET сборки, как системные, так и сторонние, что с успехом и делают.

    3. "И что же нам не хватает для счастливой работы ? это компиляция исходного кода !...И что нам делать когда у нас есть огромная задача которая использует один и тот же блок кода ? начну раскрывать маленькие секреты , вот тут Python ровном счетом ничего нам не даст"
    Раскрою секрет автору и всем остальным. Берем любую среду для работы с .NET и на любом языке (хоть Python, хоть c#) делаем dll сборку и используем её хоть в PythonShell, хоть в Dynamo, хоть в AddIn для Ревита.

    4. "Итак если у нас задача в открытии приложения любым пользователем то увы Python нам ничего не ответит и не даст никакого решения, мы не можем из Python получить dynamic link library (dll)"
    без комментариев. см. пункт 3.

    5. "Некий ответ на вопрос выше дает так называемый Cython , это интеграция Python в C язык."
    Непонятно, зачем автор полез в расширения классического Питона для c++ и в диалект Питона для Win32 систем - Cython, это вообще из другой оперы. И из скриптов на них он никак не сможет взаимодействовать с Revit ни внутри ни снаружи. К чему эта инфа?

    6. "Но что дальше ? может плюнуть на все это ? и просто отвернутся от Python и уж тем более от Dynamo ? я скажу не стоит , Dynamo сам по себе не плох , но его функционал и предназначение не решают моих вопросов и уж никак не повышают производительность труда инженера"
    Ноу комментс, выше итак все расписано уже.
    7. "На мой взгляд аббревиатура BIM уже очень сильно подпортила крови не только мне но и очень многим инженерам."
    Думаю, для многих, так и осталось загадкой, каким образом. Учитывая то, что автор также по полной использует BIM (информацию и работу с ней из высокоуровневых объектов базы данных Revit), хотя и открещивается от него. Видимо это такое проявление нигилизма.
    8. "инженер должен создавать информацию для конечного звена - службы эксплуатации, не говоря о всех промежуточных звеньях......А уж тех надзору глубоко по барабану проблемы BIM в том виде в котором его рисуют не только autodesk но и учебные центры."
    Autodek и все интеграторы уж года три, как не говорят о том, что BIM для проектировщиков. BIM идет от инвесторов, заказчиков через все стадии жизненного цикла объекта и всех участников. Реальных примеров у нас в стране единицы пока, но мы на 20 лет отстаем от других стран в этом деле.

    Думаю, надо мне тоже по этому комментарию написать пост у себя, чтоб люди понимали, что есть что и не дезинформировались.

    ОтветитьУдалить
    Ответы
    1. Поддерживаю комментарий по всем пунктам.

      Cython не нужен инженерам. IronPython не поддерживает многие библиотеки настоящего CPython, страдает от невыразительности .NET и вообще, по моему мнению, его ждет судьба VBA. На днях, кстати, сам Microsoft выпустил Pyjion -- новый JIT для "настоящего" Питона. Проблема выбора языка сейчас вообще тривиальна, с популяризацией всевозможных инструментов FFI/RPC, протоколов обмена сообщениями, распределенных приложений и так далее. Скорость работы Питона не должна вас волновать.

      M в BIM -- это менеджмент, забудьте про модель. В BIM делают ГИС-подобную базу данных для управления строительством, а не модель.

      Удалить
  2. 1. "Просто API (программные интерфейсы), которые почему-то автор постоянно называет исходниками Ревита"
    API дает доступ к объектам исходного кода в режиме read only или write, если я назвал когда либо API - исходным кодом то ошибся.
    2."построены на обертках .NET и соответственно их можно использовать с помощью любого языка для этой платформы, что и делают создатели плагинов (на любом .NET языке), создатели скриптов (C#, VB.NET), сам автор, используя RevitPythonShell, реализующий этот самый IronPython и, конечно, те,к то работает с Dynamo (ноды используют c#, а специальный нод Python, как не трудно догадаться - тот же самый IronPython)"
    И ? я разве сказал что RevitPythonShell эта панацея ? у меня уже и Dynamo и RevitPythonShell на одной ступеньке давно и в дальнейшей работе я уже не использую ни того ни другого по причинам описанных выше.
    3." Раскрою секрет автору и всем остальным. Берем любую среду для работы с .NET и на любом языке (хоть Python, хоть c#) делаем dll сборку и используем её хоть в PythonShell, хоть в Dynamo, хоть в AddIn для Ревита."
    Ну это же ложь ! скиньте хоть одну ссылку на компилятор того же 3.5, я описал способы получения dll используя Python. Это скриптовый язык и он на прямую не компилируется. Можно создать свою библиотеку на компилируемом языке и импортировать ее в Python на при помощи Python этого не сделать без API языка на базе того же Visual Studio.
    4. "без комментариев. см. пункт 3."
    аналогично
    5. "Непонятно, зачем автор полез в расширения классического Питона для c++ и в диалект Питона для Win32 систем - Cython, это вообще из другой оперы. И из скриптов на них он никак не сможет взаимодействовать с Revit ни внутри ни снаружи. К чему эта инфа?"
    Но вот видите вы не поняли , а пишите не разобравшись полную ахинею, я даже ни слова не сказал про использование его в скриптах , внимательно перечитайте и желательно посмотрите презентацию возможностей.
    6. А я еще раз повторю , Dynamo не более чем игрушка
    7. Впервые слышу что API или GUI это BIM, это чья то больная фантазия, не моя точно, я 6 лет ждал когда же BIM повернется лицом к рабочим инженерам , а он все больше другим местом поворачивается . Мне дизайнерские вещи не нужны , в том числе и рабочим архитекторам, мне лично надоело слушать и у себя на работе и на форумах вечные упреки в сторону Revit, тут явно пора начинать наводить порядок в этом бардаке. Философия и ваша и BIM уж очень далеко уходит от реальности.
    8. Вам виднее , я всего лишь "винтик" и скромный инженер в этой машине. Я просто презираю когда людей вводят в заблуждение и говорят как все чудесно, и если вам что то не хватает и вам лень изучать программирование изучите Dynamo, но немного изучив его начинает возникать понимание что это не есть явное решение. В сложных задачах нету простого решения.
    P.S. стоит взглянуть на верх страницы и приходит понимание что не все так радужно в Revit и с Dynamo

    ОтветитьУдалить
  3. 1. "И ? я разве сказал что RevitPythonShell эта панацея ? у меня уже и Dynamo и RevitPythonShell на одной ступеньке давно и в дальнейшей работе я уже не использую ни того ни другого по причинам описанных выше."
    Вы сказали, что Питон может использовать дополнительные библиотеки, а Dynamo этого делать не умеет, а я же сказал что умеет и там такой-же IronPython как и в PythonShell. Комментарий именно об этом. Причины, по которым вы, как говорите, не используйте больше питон (не компилируется, я правильно понял?), надуманны, если только у вас нет задачи писать исключительно мультиплатформенный автономный инженерный софт.
    2. "Ну это же ложь ! скиньте хоть одну ссылку на компилятор того же 3.5, я описал способы получения dll используя Python. Это скриптовый язык и он на прямую не компилируется. Можно создать свою библиотеку на компилируемом языке и импортировать ее в Python на при помощи Python этого не сделать без API языка на базе того же Visual Studio."
    Причем тут 3.5? Это какой-то фетиш, работая в Windows c Revit (или чем угодно), использовать классический Python и расстраиваться, что из него сложно сделать dll? Вы понимаете разницу между IronPython (с работой в котором у вас связаны предыдущие статьи) и Python (про который вы пишете в этой)?
    И, да - IronPython Отлично компилирует код в .NET сборки (dll И exe), как и любой другой .NET подобный язык. https://pypi.python.org/pypi/ironpycompiler/0.9.0

    ОтветитьУдалить
  4. продолжение....

    3."Но вот видите вы не поняли , а пишите не разобравшись полную ахинею, я даже ни слова не сказал про использование его в скриптах , внимательно перечитайте и желательно посмотрите презентацию возможностей."
    Ну как не сказали, очень даже сказали. У вас даже статья так и называется "Revit и Python в перспективе" и Питон вы поминаете в контексте использования PythonShell, а все ваши дальнейшие выкладки относятся к классическому питону, который тут вообще не причем. В чем я написал ахинею? можно подробно? Все что я написал, соответствует действительности. Если вы не планируйте, использовать Python для связи с Revit - это ничего не меняет. Хотите писать на питоне автономные приложения, так как нравится простота языка, и при этом создавать dll и использовать чужие dll - это возможно в Windows и достаточно легко и PythonShell и Dynamo сами этим механизмом пользуются. И для этого не нужен стандартный Python - он действительно не предназначен для этого (опять-же повторюсь, что если это фетиш какой-то, то да, конечно тут сказать нечего).
    4."Впервые слышу что API или GUI это BIM"
    От кого? Я такого не говорил, перечитайте.
    5."BIM повернется лицом к рабочим инженерам , а он все больше другим местом поворачивается"
    Можно поподробнее, каких изменений вы именно ожидали?
    6."Мне дизайнерские вещи не нужны , в том числе и рабочим архитекторам, мне лично надоело слушать и у себя на работе и на форумах вечные упреки в сторону Revit"
    Да, костылей много, но при чем тут BIM? Это он виноват? Какое отношение он имеет к недоработкам ревита?
    7."тут явно пора начинать наводить порядок в этом бардаке"
    Писать собственные решения, или что? Собственные решения это хорошо, кто-же спорит.
    8."Философия и ваша и BIM уж очень далеко уходит от реальности"
    можно подробнее, в чем моя философия и в чем философия BIM?
    9."Я просто презираю когда людей вводят в заблуждение и говорят как все чудесно, и если вам что то не хватает и вам лень изучать программирование изучите Dynamo, но немного изучив его начинает возникать понимание что это не есть явное решение. В сложных задачах нету простого решения."
    Это либо только вы так сами поняли либо еще что-то. Судя по вашим статьям, можно тоже подумать, что в самостоятельном программировании все чудесно, но это не так, да еще и вводите в заблуждение других людей, говоря совсем уж ошибочные вещи.
    Никто не говорит, что в Динамо можно все делать без программирования. Для формообразования там неплохая геометрическая библиотека и можно обойтись без фрагментов на Python, а для автоматизации в Ревите, конечно нужно вставлять эти самые фрагменты кода. Но создать инструмент даже с включениями Питона в Динамо и работать с ним в любом случае 10 раз быстрее и удобнее по целому ряду причин, а возможности как минимум одинаковые, а как максимум у динамо они больше (опять-же из-за хорошей геометрической библиотеки хотя-бы, которую можно использовать в том-же питоне и которая без Динамо не доступна в PythonShell)

    ОтветитьУдалить
  5. Михаил, почему инженеры (в большинстве) так активно используют эксель и маткад? Почему они свои задачи сразу в программах не реализуют? Потому что им нужны решения, а не красивые обёртки(за редким исключением).
    Dynamo - это эксель для BIM, это решение большинства задач. Кто-то возможно и от экселя ждал, что тот сразу по умолчанию будет решать все их задачи.
    У нас Динамо очень хорошо ускоряет процесс проектирования, на c# я бы раз в 10 меньше за это время сделал.
    По цифрам в стоимости зданий не согласен. Не знаю, хотите ли это обсуждать: бетон 26 металл 30 в жилье.

    ОтветитьУдалить
  6. 1. нет , не совсем автономный и "без посредников" ,но без интерпретатора языка приложения.А мультиплатформенность слишком громко наверное......

    revitpythonshell я только один раз упомянул в тексте и если приглядеться и не придумывать выводы о чем я говорил то видно что все ссылки на работу Python на базе Visual Studio в связке с компиляторами. И я хочу использовать Python в дальнейшем только действительно там где он нужен, и изначально был создан для этого.

    2. :) , давайте проще все сделаем , скомпилируйте по ссылке :
    print("Hello World")
    а не :
    print "Hello World"
    ну а если еще глубже капнуть он не совсем компилирует все что хочешь, поэтому создайте dll используя синтаксис Python при это в коде ссылайтесь на объекты revit API.
    Вы этого не сможете никак кроме описанного в статье метода. А вы мне говорите про то что можно создать на .NET языке библиотеку и запихнуть ее в код Python , ради бога , я отличного от этого ничего не сказал. Только что бы опять вам сделать dll вам придется запаять ваш скрипт в компилируемый язык и тут Python не помощник ! теперь понятно ? причем в самом Python скрипте вам придется ссылаться только на NET, за его приделы не получится.
    Есть еще несколько источников подобного рода компиляторов , все они не компилируют то что нам нужно при работе с Revit и с серьезными задачами.

    3. см. п. 2. Один раз упомянул не значит что про это все время говорю, все ссылки вроде как не про эту оболочку ...
    4. и 8. Прочитал , вы пишите :
    по полной использует BIM (информацию и работу с ней из высокоуровневых объектов базы данных Revit)
    а мы имеем доступ только через UI или API, получается для вас это BIM !? По мне у Autodesk нету вообще никакого BIM, есть некая зачаточная связь разных разделов. И вот тут весь BIM и рассеивается. Связь только на уровне геометрических примитивов Revit. Нету связи самой информации между выполнением различных задач.От задачи к задаче мы копируем одно и то же по несколько раз,создаем базу данных ради другой базы данных, ну это же мазохизм !!! Вместо того что бы наращивать функционал по взаимосвязи MEP, конструкторов ,архитекторов....улучшать взаимосвязи классов в рамках одного раздела что мы видим ? появился Autodesk 360, Vault, Naviswork, Plant Design, Building Design,Advance cocrete, BIM 360, Infraworks 360, Advance steel и много чего еще, можно просто обезуметь сколько проектов выкуплено и зарыто в землю, а в это время армирование из Robot не попадает в Revit , то что составляет 40% трудоемкости любой стройки и любого проекта полностью ручной труд до сих пор, про какой BIM можно говорить ? и эта задача только одна из списка который висит в начале блога , и таких вещей сотни и они за много лет не решаются никак вообще. Поэтому в моем понимании BIM и эта же аббревиатура в рамках политики autodesk, и вашей философии, явно не совпадают.
    P.S. и кроме как фетишем тут задачи не решаются
    5. Читайте список в начале блога ,чего ждут люди , и это далеко не предел, там нету инженерных систем и там тоже еще тот темный лес.
    6. я уже высказался по поводу BIM, мне хочется что бы BIM и revit были на одной стороне баррикад, а пока они оба шагают в разных направлениях.
    7. Я только вижу беспорядок , я небольшой человек что бы решать такие вопросы, я их решил для себя по своему.

    ОтветитьУдалить
    Ответы
    1. Этот комментарий был удален автором.

      Удалить
    2. Если под связью информации между разделами подразумевается трансляция одними элементами параметров других, то такая связь есть, например между помещениями и пространствами с именами и номерами. Есть и другие примеры.
      Про продукты или я мысли не понял или мимо. Адвансы как и робот будут закопаны. Будет доработан ревит и реакт. Софистик интересные приложения демонстрирует под ревит для армирования.

      Удалить
    3. 1."revitpythonshell я только один раз упомянул в тексте и если приглядеться и не придумывать выводы о чем я говорил то видно что все ссылки на работу Python на базе Visual Studio в связке с компиляторами."
      Это видно мне и другим, кто разбирается, а всем остальным нет. В предыдущих статьях вы работали с IronPython а в этой переключились на классический и никак явно этот переход не обозначили, и любой нормальный человек будет думать, что речь об одном и том-же, чем будет введен в заблуждение.

      2."давайте проще все сделаем , скомпилируйте по ссылке print("Hello World") а не print "Hello World" "
      Что вы хотели этим сказать? Я вообще не понял, к чему это было, но ради развлечения вот вам и со скобками и без:
      http://joxi.ru/ZrJNWpu1bW4lrj

      3."если еще глубже капнуть он не совсем компилирует все что хочешь, поэтому создайте dll используя синтаксис Python при это в коде ссылайтесь на объекты revit API. Вы этого не сможете никак кроме описанного в статье метода."
      Вы просто, видимо не разбираетесь в этом вопросе, хотя почему-то спорите о том, чего не знаете, а это между тем все основы. Да, я могу создать код в синтаксисе питона и собрать в dll и использовать в ней обращения к Revit API и загрузить эту Dll в виде плагина к Revit или как собственный набор нодов для Dynamo и пользоваться ей. И это будет такой-же способ, которым я создал екзешник с hello word.

      4."Только что бы опять вам сделать dll вам придется запаять ваш скрипт в компилируемый язык и тут Python не помощник ! теперь понятно ?"
      Мне-то как раз все понятно)) а вот вам не понятно совсем то, о чем я говорю и то, что классический Питон тут вообще не причем.

      5."в самом Python скрипте вам придется ссылаться только на NET, за его приделы не получится."
      В классическом Python вам придется ссылаться только на объекты самого питона и его пакетов + через них на функции Win32 и все это богатство таскать с собой везде включая сам интерпретатор. В IronPython я могу ссылаться на объекты питона, его системных библиотек, библиотек.NET + через них на функции Win32. А больше ничего и не надо. Это наоборот - выход за пределы классического питона, расширение границ.

      6."получается для вас это BIM"
      Для меня BIM - это возможность работать с высокоуровневыми объектами, как конструктивными так и нет, которые имеют какую-то информацию, которую можно брать, анализировать и передавать другим объектам и которая на них может влиять. Все остальное - вторично. Если у программы нету штатных средств для того, что мне нужно - это плохо, но если она оперирует строительными объектами с информацией, то я могу ее вытянуть и использовать или передать в другую программу с помощью API. В автокаде я так сделать не смогу хоть с API хоть без, просто потому-что там нету нужной информации в базе, а есть только палочки.

      7."Вместо того что бы наращивать функционал по взаимосвязи MEP, конструкторов ,архитекторов....улучшать взаимосвязи классов в рамках одного раздела что мы видим ?"
      Проблема отставания функционала и его качества характерна для всех САПР и BIM продуктов всех производителей. Я для любой программы смогу найти десятки косяков и недоделок. Идеальная среда для проектирования - это детская утопия по многим причинам. Но программы BIM объектной организацией хотя-бы позволяют достаточно легко расширить себя и написать инструменты для решения нужных задач.



      Удалить
    4. 8."в это время армирование из Robot не попадает в Revit"
      Да, плохо но вы можете написать свой инструмент переноса достаточно легко именно потому-что программы используют BIM подход. и задача из глобальной схлопывается в узкую задачу по переносу и синхронизации конкретной определенной информации из одних объектов в другие.

      9."Читайте список в начале блога ,чего ждут люди"
      То, что ждут люди в начале блога и то, что вы называете BIM в вашем понимании - называется "Желание получить в программе все, что хочется из коробки и чтоб все работало как надо". Желание очень хорошее и правильное,хотя и несколько утопичное, но самое главное, что к идеологии BIM оно никакого отношения не имеет вообще. Такой список можно составить для абсолютно любой программы в абсолютно любой сфере.

      Удалить
    5. 1. По моему это вы пытаетесь запутать следы
      2. мы говорили про dll а не приложение .exe. То что вы показали я уже осветил в статье. И для этого нам не нужно проходить по ссылке которую вы указали. Python уже давно разработал PythonTools для Visual Studio как для Python 2.7 так и 3.5.
      3. Ну да , я может чего то не знаю , возможно , только вот вы пишите вообще не по теме, точнее не по теме а все уводите в нужную сторону. Начнем сначала:
      дайте ссылку где вы используя синтаксис Python и напрямую компилируете DLL в двоичный или восьмеричный код (машинный). И не нужно мне рассказывать то на что я уже давал ссылку :
      https://www.youtube.com/watch?v=IRE67QFYu4s
      неужели неясна разница ?
      4. Я лишь дал пояснения как выйти из положения когда нужно Python скрипт превратить в нечто большее. Прямого компилятора синтаксиса Python не существует ! если есть ссылку , то что вы дали это не то, можете еще скинуть py2exe и это тоже не то.В любой документации есть различные способы получения библиотеки. Я указал несколько способов через костыли. А ответ на ваше МОГУ , я тоже МОГУ.
      И как сказал один из знакомых программистов:
      "Когда пишешь блоки кода на Python и вставляешь их в компилируемый С то с течением времени начинаешь просто писать на С"
      5. Ну тогда это отдельная тема для разговора
      6. Просто с таким успехом и Autocad это BIM, мне тут показали возможности арчика , ревит уже отстал от конкурентов....
      7.8.9. Ваши коллеги из Autodesk как то приходили в нашу организацию и рассказывали 60 (на тот момент было меньше) проектировщикам что такое BIM, так вот основная связь в самом BIM это Revit -Robot позиционировалась как двухсторонняя и это был основной критерий , это не "тонкое" место , я работаю в одной из немногих компаний полного цикла (покупка земли-производство ЖБИ, мелкоштучных элементов , растворные заводы , МКЗ и тд-строительство - -продажа площадей - эксплуатация ). У нас в организации основная задача во время эскизного проектирования ложится на человека который просчитывает варианты объемно планировочных решений. Это экономические показатели себестоимости не только материалов но и трудоемкости стройки. А о чем можно говорить когда этой двухсторонней связи нету ? Менеджеры Autodesk просто замалчивают этот вопрос, показывают стандартную картинку на которой стоят две стрелочки и снизу надпись BIM. Мне уже очередной смешно слушать это. Никто не понимает вопросы , а если вопрос в лоб, то ответ "это будет в следующей версии".Мне это надоело. И это только ОДИН ключевой момент. И вы на его лично ответить тоже не сможете , вы архитектор ,который ни в зуб ногой о чем я говорю, это должны решать Autodesk на уровне исходного кода обоих программ, и что я вижу ? Robot закрывают и совершают ребрендинг вместо реальных задач...
      P.S. На уровне объектов API у нас есть все что бы решать эти вопросы но это должны делать сами Autodesk. Я не хочу(никто не хочет) платить 7600 евро за кнопку фрагментации 3д вида в 2016 версии. Поэтому я за решения которые вообще не привязаны к Revit , но могут легко использовать , перерабатывать и возвращать информацию в любой софт. Будь то Tekla, Revit, Allplan и тд. Dynamo вешает зависимость и уничтожает какое либо зерно понимания сути вещей в программировании. Закроется проект Dynamo или Revit, мы получим стадо слепых кроликов.

      Удалить
    6. 1. Никоим образом)) Читателям, особенно, кто, как вы говорите, не понимают о чем вы пишете, в моих комментариях как раз все будет понятно)))

      2. между dll и exe нет никакой разницы кроме расширения и наличия точки входа. И генерируются они одинаково.

      3. Ок, значит дело действительно только в спортивном интересе получить скомпилированный код из классического Питона. Ну раз очень хочется, то конечно удачи вам)) Я просто все пытался выяснить у вас зачем такой тупиковый и не подходящий для решения практических задач путь, когда есть нормальные пути, максимально близкие к тому, что вы описываете, но дело личное, конечно.

      4. AutoCAD это не бим, а вот AutoCAd Architecture - да, BIM. То есть дело не в платформе, а в конечной реализации.

      6,7,8,9. Ну я не могу отвечать за автодеск и за то, что говорят их специалисты, тем более, что я не сотрудник автодеска. Но мы же не в детском саду..есть своя голова на плечах. Тупо верить всему что говорит маркетинг. Я изучаю продукты когда хочу их использовать или наладить совместную работу с другими специалистами. Выясняю что хорошо, что плоха, какие инструменты пригодны а какие нет и работаю с тем что есть, дорабатывая то, что можно и создавая свои инструменты под себя. А что еще делать? Только писать свой BIM софт или свой узкий инженерный софт(которого итак в изобилии у газовиков, нефтянки итд)
      Ныть то каждый может. Понятно, что никому не нравится корявый софт.

      "Вы архитектор ,который ни в зуб ногой о чем я говорю"
      Мне вот, например тоже не нравится когда люди с пеной у рта думают, что они телепаты и сразу дистанционно оценивают, что человек понимает, а что нет.

      10. "Закроется проект Dynamo"
      Ну это врятли, учитывая что он с открытым исходным кодом и лежит на гитхабе. Касательно потенциального закрытия любых программ и зависимостей от них - это уже схоластика.

      Удалить
    7. Вот Вы Михаил странный человек, с одной стороны пишите, что автодеску надо переписывать код программы ревит, что мол без этого невозможно работать, но в то же время ругаетесь на них за то, что они переписывают полностью (более негибкий и косячный) робот. Вы говорите, что в ревите нужны готовые решения из коробки и ругаетесь, что адвансы купили и закапывают (Вам ведь известно, что решения из них перекладываются в ревит?), говорите что Вам нужно все решения по армированию, сразу, серьезные, не какие-то костыли и без косяков и говорите, что они что-то должны каждый год выдавать, говорите, что в программе все должно быть из коробки и если чего-то и нет, то нужна возможность это все дописать, но в то же время восторгаетесь программами Текла и Архикад, которые на много, на ОЧЕНЬ МНОГО менее гибкие чем ревит (посмотреть только на структуру файлов и библиотек), говорите, что мол автодеску каждый год говорите что исправить нужно, а самому автодеску пожелания не пишете (или пишете?) http://forums.autodesk.com/t5/revit-pozhelaniya-russkiy/idb-p/2054/tab/most-kudoed

      Насколько я понимаю политика автодеска следующая: "реализация региональных расчетов и оформления не в приоритете, а в приоритете: дать возможность пользователям донастроить продукт под свои региональные нормы и обеспечить производительность продукта". Насколько я понимаю ревит сейчас уперся в перепутье между высокоуровностью связей и зависимостей между элементами и производительностью. Удобно конечно говорить о программировании, базах данных и приводить в пример одну крайность, а с другой стороны говорить про деревянные архикад и теклу, которые без динамики, связей и сложной геометрии обеспечивают бОльшую производительность. Т.е. Вы хаете ревит и приводите в пример лучшие стороны других программ, которые в комплексе в подметки ему не годятся, аналогично и с Dynamo, для которого Вы придумали какие-то сложные задачи, которые не можете решить и на этом примере заявляете, что чистое программирование лучше такого подхода, но в комплексе в 95% случаев динамо обеспечит нам бОльшую эффективность.

      Удалить
  7. Александр покажите для вдохновения какие это задачи !

    ОтветитьУдалить
    Ответы
    1. На dynamobim.ru выкладываю некоторые. В теме нединамические виды и спецификации выложил очень полезный скрипт. Считаем ведомость отделки помещений, заполняем параметры оборудования, расставляет оборудование, подготавливаем модель для автоматической проверки и расчетов. Буду на работе что-нибудь покажу.

      Удалить
    2. И прямая ссылка на видео: http://www.youtube.com/watch?v=cMQ8zwmosNU
      Как Вы понимаете, сделать из этого любую форму и внести любую информацию из ревита не составляет проблем и изменение шаблона занимает несколько минут. С помощью дино выношу эти таблицы в кнопку на ленте и обновляю перед выгрузкой/печатью.

      Кстати и экспорт в ексель настроил через кнопку, чтобы не держать спецификации в требуемом для выгрузки в ексель виде (для расчетов требуется другой вид нежели на листах). Да и избегаю этих вечных проблем с точками/запятыми т.к. все в текстовом формате выгружается.

      Удалить
  8. Михаил, здравствуйте. Подскажите, пожалуйста, с чего лучше начать изучение Python (книги, сайты, примеры использования). Спасибо.

    ОтветитьУдалить
    Ответы
    1. В одной из тем Михаил писал "https://www.youtube.com/channel/UC9rWgAzfjfK-iq-cOp4ZGGw
      вот для начала :) тут очень все подробно , я с этого начинал"

      Удалить
  9. Здравствуйте коллеги. Интересная тема. Я около года активно использую Динамо практически во всех сферах своей проектной деятельности(по некоторым процессам автоматизация с помощью Динамо дает многократный выигрыш во времени), к слову, я даже перестал пользоваться калькулятором, у меня всегда открыто Динамо в автономном режиме. Даю уроки Динамо на ютюб, уже 16 уроков и более четверти тысячи подписчиков, третья часть которых иностранцы, невзирая на русский язык. И сегодня ровно пять месяцев нашему сайту dynamobim.ru, который посещают люди со всего земного шара, вот карта посетителей http://prntscr.com/9mekh1 Михаил, спасибо Вам большое, за то что открыли всем нам глаза, теперь мы будем знать, что Динамо - ЗЛО.

    ОтветитьУдалить
  10. Мне так понравились комментарии, спасибо! И хорошее настроение не покинет больше нас :)

    ОтветитьУдалить
  11. Александр, вот Вы пишите, что "Dynamo - это Эксель для BIM". Простите, но в Вас говорит детская увлеченность. Если бы это было так, то все бы перешли на эту технологию. Но масса профессиональных проектировщиков далека от программирования. Кроме того, Эксель есть у каждого на компьютере, а Dynamo нет. Мы решили ту же ведомость отделки помещений через Ревит и Эксель. Экономия времени колоссальная. А главное, что любой проектировщик может этим воспользоваться. 5000 помещений Не стоит размещать и обрабатывать в Листах Ревит. Абсурд. Надо просто хорошо знать базовые возможности ПО. Dynamo хорош только совместно с Python, а это уже уровень программирования раз. И два, что будет дальше с изменением версионности и т. Д. И т. П.? Вот вопросы, которые надо держать в голове всем увлечённым людям. Полной автоматизации проектирования не требуется. Требуется автоматизация Рутинных операций, повторяющихся огромное количество раз.

    ОтветитьУдалить
    Ответы
    1. Этот комментарий был удален автором.

      Удалить
    2. "Добра желатель", а шо так? Почему полной автоматизации проектирования не требуется? Боитесь конкуренции со стороны компьютеров? Вспомнился анекдот брежневских времен: Коммунизм. Стоит огромная очередь за мясом. Пару часов мясо давали и перестали. Толпа негодует. Выходит главный мясник и изрекает: "Больше сегодня потребности в мясе не будет". Так и тут, некий "Добра желатель"(неизвестно кому) изрёк, что полной автоматизации проектирования не требуется. Простите, но я с Вами не согласен.

      Удалить
    3. А ты прикинь, как бы ты сэкономил, пользуясь скриптом динамо) тоже вроде ничего не надо "размещать в листах ревит" (кстати не понял, что это вообще значит:) )

      Удалить
    4. к тому же, dynamo весит от силы 100мб, скачать в нынешний век и установить сможет любой проектировщик, а скрипт для расчета отделки в открытом доступе

      Удалить
  12. А 25000 помещений, а 150 000 помещений, тоже ексель?
    Ексель - прошлый век. Отказываться от передового софта - означает нечаянно оказаться за бортом передового проектирования.

    ОтветитьУдалить

Поиск по этому блогу