Khasan Mamaev

Ответы в темах

Просмотр 15 сообщений - с 1 по 15 (из 113 всего)
  • Автор
    Сообщения
  • #3165 Score: 6
    Khasan Mamaev
    Модератор
    187 pts

    еще одна правочка, проверка на список была лишней


    Предлагаю сохранить этот код в кастом-нод, поскольку это полезнейшая штука

    #9177 Score: 6
    Khasan Mamaev
    Модератор
    187 pts
    #3462 Score: 4
    Khasan Mamaev
    Модератор
    187 pts

    MathRound.png

    #4672 Score: 3
    Khasan Mamaev
    Модератор
    187 pts

    Иногда бывает нужно получить копию списка в Питон. Это бывает нужно чтобы менять список, при этом сохраняя исходный список. В такой ситуации нельзя делать простое присваивание типа list2 = list1, таким образом мы просто создадим вторую ссылку на исходный список и любые манипуляции со второй ссылкой отразятся на исходном списке. Копия списка создается так list2 = list1[:]. В различных источниках можно встретить метод list.copy(), но в нашей версии Питона этот метод не работает.

    #6700 Score: 3
    Khasan Mamaev
    Модератор
    187 pts

    script

    #2169 Score: 3
    Khasan Mamaev
    Модератор
    187 pts

    #3362 Score: 3
    Khasan Mamaev
    Модератор
    187 pts

    #3365 Score: 3
    Khasan Mamaev
    Модератор
    187 pts

    этот код работает как с отдельными словами, так и со списками слов (This code works with both individual words and word lists with)

    #3176 Score: 3
    Khasan Mamaev
    Модератор
    187 pts

    А это обратный скрипт, выделяет в Ревит элементы, полученные в Динамо

    #5959 Score: 3
    Khasan Mamaev
    Модератор
    187 pts

    я тоже внесу свою копеечку, в моем коде не нужно ничего менять в зависимости от префикса

    #2947 Score: 3
    Khasan Mamaev
    Модератор
    187 pts

    Найди библиотеку Интероп на своем компе(она кстати лежит в не очень хорошем месте, путь Питон не хочет понимать) скопируй ее в удобное место, напиши путь к ней таким образом clr.AddReferenceToFileAndPath(“m:\Dynamo\Dynamo&Excel\Microsoft.Office.Interop.Excel”)

    #3308 Score: 3
    Khasan Mamaev
    Модератор
    187 pts

    Интересную тему затронул коллега, вот вариант решения

    Содержимое “передатчика”:

    Содержимое “приемника”:

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

    К этой глобальной переменной можно обращаться не только внутри одного скрипта Динамо, но даже из других скриптов и программ.

    #1539 Score: 2
    Khasan Mamaev
    Модератор
    187 pts

    К чему такие вопросы с подколами? Может хватит уже вести эти глобальные разговоры? Я прекрасно понимаю Александра, человек хочет разобраться стоит ли выбирать тот или иной путь. Давайте поможем ему, если есть чем помочь, я в данном обсуждении пока единственный человек, который занимается в Динамо конктретно этой задачей. Пока никаких непреодолимых препятствий я не вижу. Так что Александр смело начинай пользоваться Динамо, в любом случае это пойдет на пользу, я со своей стороны помогу чем смогу.

    #6108 Score: 2
    Khasan Mamaev
    Модератор
    187 pts

    поизучайте этот ресурс DesignScript Language https://github.com/DynamoDS/DesignScript/blob/master/LanguageSpec.md

    #4668 Score: 2
    Khasan Mamaev
    Модератор
    187 pts

    Не знаю кому как, а по мне Питон по своему синтаксису проще и понятней чем СиШарп и другие известные мне языки программирования. Вот например как изящно решается на Питоне, задача опубликованная выше:

    import clr
    clr.AddReference(“RevitAPI”)
    import Autodesk
    from Autodesk.Revit.DB import FilteredElementCollector
    clr.AddReference(“RevitServices”)
    from RevitServices.Persistence import DocumentManager
    from RevitServices.Transactions import TransactionManager

    doc = DocumentManager.Instance.CurrentDBDocument
    LPE = Autodesk.Revit.DB.LinePatternElement
    FEC = FilteredElementCollector(doc).OfClass(clr.GetPythonType(LPE))
    linesDel = [i.Id for i in FEC if ‘IMPORT’ in i.Name]

    TransactionManager.Instance.EnsureInTransaction(doc)
    [doc.Delete(item) for item in linesDel]
    TransactionManager.Instance.TransactionTaskDone()

    и если учесть что ровно половина этого кода есть импорт библиотек и классов, то весь код уместился в 7-ми строчках.

Просмотр 15 сообщений - с 1 по 15 (из 113 всего)