Построение элемента dynamo из нода python
Главная › Форумы › Python › Синтаксис и родные библиотеки Python › Построение элемента dynamo из нода python
- В этой теме 21 ответ, 4 участника, последнее обновление 8 лет, 3 месяца назад сделано Khasan Mamaev.
-
АвторСообщения
-
Привет, друзья,
чего-то не удаётся построить какой-нибудь элемент 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 не строятся… Как их там построить? :з
Так, разобрался, геометрический элемент появился в рабочей области dynamo, нужно отправить его в OUT…
А как преобразовать элемент XYZ из Revit API в элемент Dynamo?Тип объекта: Autodesk.Revit.DB.XYZ, а если к нему применить метод ToProtoType(), то выводится ошибка, что элемент XYZ не имеет атрибута ToProtoType().
Хочу из этого объекта (double, double, double) получить объект dynamo Point(X = double, Y = double, Z = double).Не совсем понял, вот это выводит объект 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
А откуда взялась апи точка?
Да точка точкой, обычная точка XYZ :р (ковыряюсь в boundingbox просто), пока что без конкретной привязки к чему-либо.
Если ты получаешь точку из ревит, то есть нод для конверлации в точку Динамо. А если ты в Питоне сам создаешь апи точку и пытаешься сделать из неё динамовскую, то конечно проще сразу создать точку Динамо
Если такой костыль кажется слишком сложным, то его можно завернуть в функцию
а чем эта запись (результат):
pt1 = XYZ(0,0,0)
pt2 = Point.ByCoordinates(pt1.X, pt1.Y, pt1.Z)
OUT = pt2
отличается от этой: ?
OUT = Point.ByCoordinates(0, 0, 0)
Legantmar, тем, что я создаю новою точку от design script.
Я думал, есть возможность конвертировать точку из revit api в design script (в dynamo).
Примерно, как с curve:Autodesk.Revit.DB.Curve.ToProtoType()
, но дляAutodesk.Revit.DB.XYZ
такого метода нет, вот и приходится создавать точку черезPoint.ByCoordinates
, а координаты получать через разложение объектаAutodesk.Revit.DB.XYZ
.если есть большое желание, то можно загрузить библиотеку RevitNodes и оттуда получить конвертер точки
Для точек — нет… Как я понимаю, список конвертера ограничен curve, mesh, face, solid…
я говорю про это ReferencePoint.Point
я не ворчу, но все же:
тема называется “Построение элемента dynamo из нода python”
а в постах скатывается до преобразования точки ревита в dynamo ))
tuuletin, может быть ты какую-то конкретную задачу поставишь с условиями, исходными данными и желаемым результатом…
а то можно долго ходить вокруг точки ))
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.