Ренат Я.

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

Просмотр 15 сообщений - с 1 по 15 (из 48 всего)
  • Автор
    Сообщения
  • #5863 Score: 6
    Ренат Я.
    Модератор
    79 pts

    получилось сделать такую последовательность

    проверить можно так, выбрать какой либо элемент, выполнить скрипт.. и смотреть на значение параметра “Комментарии”. для того чтобоы узнать последовательность действий нужно нажимать кнопку шаг назад, для отмены последнего изменения, каждая транзакция создает шаг отката

    #8055 Score: 4
    Ренат Я.
    Модератор
    79 pts

    тоже, но нодами (данные взял из поста Legantmar’а для наглядности)

    #8232 Score: 4
    Ренат Я.
    Модератор
    79 pts

    правильно ли я понял, что нужны полные сочетания от а1 со всеми b до a4 со всеми b?

    #6016 Score: 3
    Ренат Я.
    Модератор
    79 pts

    видимо ревит как-то конвертирует входящий параметр, если несколько раз изменить, то можно вычислить зависимость

    если входящее число из комментария умножить на 10,764262648008611410118406889128 то в параметре мощности будет ~ то число которое было в комментарии отличие на несколько сотых

    PS понял, все дело в размерности..  Вт = кг*м2/с2  т.к. в БД Ревит все хранит в футах, то и этот параметр он конвертирует в футы, в 1 метре 3,28084 фута, т.е. если возвести в квадрат это число то и получим 10,7639111056  , примерно тоже что и получил эмпирическим путем) но сейчас с доказательной базой))

    #8259 Score: 3
    Ренат Я.
    Модератор
    79 pts

    одноуровневый список можно и нодами разбить, тока надо будет потом удалить символы { и }

    двухуровневый можно так разбить

    #8729 Score: 3
    Ренат Я.
    Модератор
    79 pts

    Столкнулся с еще одной проблемой: при размещении экземпляра семейства с помощью динамо (нод FamilyInstance.ByPoint) отсутствует привязка к уровню. А она очень нужна для работы скрипта.

    Для этого надо просто глянуть чуть ниже нода FamilyInstance.ByPoint, там будет находиться нод FamilyInstance.ByPointAndLevel, который позволяет указать уровень на котором будет располагаться семейство

    #5708 Score: 3
    Ренат Я.
    Модератор
    79 pts

    Revit 2017, Dynamo 1.3
    тут библиотеки для разных случаев, стандартный набор

    
    import clr
    #подключение библиотек ревита
    clr.AddReference(“RevitAPI”)
    clr.AddReference(“RevitAPIUI”)
    from Autodesk.Revit.DB import *
    # библиотека динамо для работы с ревитом
    clr.AddReference(“RevitServices”)
    import RevitServices
    #разворчиваем текущий проект в ревите
    from RevitServices.Persistence import DocumentManager
    #разворчиваем доступ к трнзакциям
    from RevitServices.Transactions import TransactionManager
    #загружаем динамовскую библиотеку нодов для работы с ревитом
    clr.AddReference(“RevitNodes”)
    import Revit
    #функция для заворачивания объектов
    clr.ImportExtensions(Revit.Elements)
    #превращение геометрии взаимное
    clr.ImportExtensions(Revit.GeometryConversion)
     
    #БД на текущий проект
    doc = DocumentManager.Instance.CurrentDBDocument
    #функции и свойство для работы с внешней оболочкой
    uiapp = DocumentManager.Instance.CurrentUIApplication
    #функции для работы с ревитом как с программой
    app = uiapp.Application
     
    TransactionManager.Instance.EnsureInTransaction(doc)
     
    pipeID=ElementId(IN[0])
    ptBreak=IN[1].ToXyz()
     
    OUT=Plumbing.PlumbingUtils.BreakCurve(doc, pipeID, ptBreak)
     
    TransactionManager.Instance.TransactionTaskDone()
    
    #5610 Score: 2
    Ренат Я.
    Модератор
    79 pts

    Сделал вот такой скриптик, возможно можно и проще)

    сам скрипт ,  если нужен  файл ревита
    конструктивная критика приветствуется)

    #5760 Score: 2
    Ренат Я.
    Модератор
    79 pts

    то что ты написал это для одной переменной, для списка надо цикл делать
    а лучше сделать, так чтобы не важно было что подавать в питон)))

    import clr
    x = IN[0]
    if isinstance(x, list) == True:
    list = [i.ToString() for i in x]
    else:
    list = x.ToString()
    OUT = list

    #8246 Score: 2
    Ренат Я.
    Модератор
    79 pts

    действительно проблема при пересечении отделки была, расстояние определялось как 0

    1. добавил проверку на расстояние 0, если 0, то ставит 999
    2. добавил чтобы брались типы стен с которыми имеются пересечения
    #5640 Score: 2
    Ренат Я.
    Модератор
    79 pts

    #6081 Score: 2
    Ренат Я.
    Модератор
    79 pts

    в 2015 все норм переводиться, в 17 ошибка два скрина для наглядности

    2015

    2017 странная приписка дельта вылазит, с ней тоже не переводится в число

    ну и как я понял БД Ревита температура храниться в Кельвинах

    #5706 Score: 2
    Ренат Я.
    Модератор
    79 pts

    вот что получилось, надо было дописать  .ToXyz()

    #9510 Score: 2
    Ренат Я.
    Модератор
    79 pts

    смотрим список 1 если там null берем значение из списка 2, если нет из списка 1

    #6505 Score: 2
    Ренат Я.
    Модератор
    79 pts

    попробовал нод

    всё работает  (в файле екселя в формуле умножение на 10)

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