Построение элемента dynamo из нода python

Главная Форумы Python Синтаксис и родные библиотеки Python Построение элемента dynamo из нода python

В этой теме 21 ответ, 4 участника, последнее обновление  Khasan Mamaev 1 год, 10 мес. назад.

Просмотр 15 сообщений - с 1 по 15 (из 22 всего)
  • Автор
    Сообщения
  • #3031 Score: 0

    tuuletin
    Участник
    3 pts

    Привет, друзья,
    чего-то не удаётся построить какой-нибудь элемент dynamo из python…

    Например, пишу в ноде python

    clr.AddReference("ProtoGeometry")
    from Autodesk.DesignScript.Geometry import *
    
    pt1 = Point.ByCoordinates(0, 0, 0)
    pt2 = Point.ByCoordinates(10, 10, 10)
    line = Line.ByStartPointEndPoint(pt1, pt2)

    Элементы сами создаются в переменных, но в области dynamo не строятся… Как их там построить? :з

    #3032 Score: 1

    Khasan Mamaev
    Хранитель
    176 pts

    OUT=line

    #3035 Score: 0

    tuuletin
    Участник
    3 pts

    Так, разобрался, геометрический элемент появился в рабочей области dynamo, нужно отправить его в OUT…
    А как преобразовать элемент XYZ из Revit API в элемент Dynamo?

    Тип объекта: Autodesk.Revit.DB.XYZ, а если к нему применить метод ToProtoType(), то выводится ошибка, что элемент XYZ не имеет атрибута ToProtoType().
    Хочу из этого объекта (double, double, double) получить объект dynamo Point(X = double, Y = double, Z = double).

    #3036 Score: 1

    Khasan Mamaev
    Хранитель
    176 pts

    В конце скрипта нужно выпускать информацию таким образом. Если несколько элементов то просто писать через запятую

    #3037 Score: 1

    Khasan Mamaev
    Хранитель
    176 pts

    А откуда взялась апи точка?

    #3038 Score: 0

    tuuletin
    Участник
    3 pts

    Не совсем понял, вот это выводит объект Autodesk.Revit.DB.XYZ

    import clr
    clr.AddReference("RevitAPI")
    import Autodesk
    from Autodesk.Revit.DB import *
    
    pt = XYZ(0, 0, 0)
    
    OUT = pt

    А нельзя ли pt сразу в объект dynamo перевести? Или только вот таким вот костылём

    pt1 = XYZ(0,0,0)
    pt2 = Point.ByCoordinates(pt1.X, pt1.Y, pt1.Z)
    
    OUT = pt2
    #3039 Score: 0

    tuuletin
    Участник
    3 pts

    А откуда взялась апи точка?

    Да точка точкой, обычная точка XYZ :р (ковыряюсь в boundingbox просто), пока что без конкретной привязки к чему-либо.

    #3040 Score: 0

    Khasan Mamaev
    Хранитель
    176 pts

    Если ты получаешь точку из ревит, то есть нод для конверлации в точку Динамо. А если ты в Питоне сам создаешь апи точку и пытаешься сделать из неё динамовскую, то конечно проще сразу создать точку Динамо

    #3041 Score: 0

    Khasan Mamaev
    Хранитель
    176 pts

    Если такой костыль кажется слишком сложным, то его можно завернуть в функцию

    #3042 Score: 0

    Legantmar
    Хранитель
    435 pts

    а чем эта запись (результат):

    pt1 = XYZ(0,0,0)

    pt2 = Point.ByCoordinates(pt1.X, pt1.Y, pt1.Z)

    OUT = pt2

    отличается от этой: ?

    OUT = Point.ByCoordinates(0, 0, 0)

    #3044 Score: 0

    tuuletin
    Участник
    3 pts

    Legantmar, тем, что я создаю новою точку от design script.
    Я думал, есть возможность конвертировать точку из revit api в design script (в dynamo).
    Примерно, как с curve: Autodesk.Revit.DB.Curve.ToProtoType(), но для Autodesk.Revit.DB.XYZ такого метода нет, вот и приходится создавать точку через Point.ByCoordinates, а координаты получать через разложение объекта Autodesk.Revit.DB.XYZ.

    #3045 Score: 0

    Khasan Mamaev
    Хранитель
    176 pts

    если есть большое желание, то можно загрузить библиотеку RevitNodes и оттуда получить конвертер точки

    #3047 Score: 0

    tuuletin
    Участник
    3 pts

    Для точек — нет… Как я понимаю, список конвертера ограничен curve, mesh, face, solid…

    #3048 Score: 0

    Khasan Mamaev
    Хранитель
    176 pts

    я говорю про это ReferencePoint.Point

    #3049 Score: 0

    Legantmar
    Хранитель
    435 pts

    я не ворчу, но все же:

    тема называется “Построение элемента dynamo из нода python”

    а в постах скатывается до преобразования точки ревита в dynamo ))

    tuuletin, может быть ты какую-то конкретную задачу поставишь с условиями, исходными данными и желаемым результатом…

    а то можно долго ходить вокруг точки ))

     

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

Для ответа в этой теме необходимо авторизоваться.