Доброго времени суток, уважаемые коллеги, столкнулся на мой взгляд с глупой проблемой. В общем, беру вектор из элементов трубопроводной системы и по нему создаю линию в чертежном виде ByStartPointDirectionLength и получаю ошибку "The line is not in the plane of view." Отправлю скрины координат векторов элементов и листинг данного кода.
----------------------------------------------import sys import clr clr.AddReference('ProtoGeometry') clr.AddReference('RevitAPI') from Autodesk.Revit.DB import * from Autodesk.DesignScript.Geometry import* clr.AddReference("RevitNodes") import Revit from Revit.Elements import* import Autodesk clr.ImportExtensions(Revit.Elements) clr.ImportExtensions(Revit.GeometryConversion) clr.AddReference('RevitNodes') import Revit clr.ImportExtensions(Revit.GeometryConversion) clr.AddReference("RevitServices") import RevitServices from RevitServices.Persistence import DocumentManager from RevitServices.Transactions import TransactionManager doc = DocumentManager.Instance.CurrentDBDocument view = UnwrapElement(IN[0]) x = 0 l = IN[3] n = len(IN[1]) elementlist = list() TransactionManager.Instance.EnsureInTransaction(doc) gp = doc.Create.NewFamilyInstance(XYZ(0,0,0), UnwrapElement(IN[2][1][0]), view) # Ставим значок граница проектирования elementlist.append(gp) vector = UnwrapElement(IN[4]) vec = [] for i in range(len(vector)): vec.append(i) pstart = Point.ByCoordinates(0, 0, 0) for i in range(n): if UnwrapElement(IN[1][i]).Category.Name != "Соединительные детали трубопроводов" and IN[1][i].GetParameterValueByName("Номер УГО") != 0: if UnwrapElement(IN[1][i]).Category.Name == "Трубы": #pstart = Point.ByCoordinates(x, 0, 0) line = Line.ByStartPointDirectionLength(pstart, vector[i], l) x = x + l pstart = line.EndPoint newobj = doc.Create.NewFamilyInstance(line.ToRevitType(), UnwrapElement(IN[2][0][0]), view) elementlist.append(newobj.ToDSType(False)) #element = doc.Create.NewFamilyInstance(point, UnwrapElement(IN[2][0][0]), view) TransactionManager.Instance.TransactionTaskDone() OUT = vec
--------------------------------------------------------------------------------------------
P.S. до этого была проблема со строкой line = Line.ByStartPointDirectionLength(pstart, vector[i], l), в частности не мог разобраться как передать вектор, писал ошибку типа "Expected Vector, got list[object]". Может быть не смог исправить, но такой ошибки нет, сейчас с расположением вне плана.
Чтобы хоть как-то ответить на ваш запрос нужно понимать что вы подаете в слоты.
У вас там много всего IN[0], IN[1]... и т.д.
Не ясно что вы туда подаете и какие там типы данных.
Для чего у вас elementlist?
BIM-менеджер
Соавтор шаблонов ADSK КЖ/КМ 2021
Инженер-проектировщик КР, КЖ
Телеграм
Правила форума и некоторые нюансы по работе с текстовым редактором
@askravcova
Здравствуйте, на IN[0] подаю вид, на котором будут располагаться элементы, на IN[1] подаю список упорядоченных элементов (трубы, арматура, соед. детали), IN[2] это УГО семейства этих элементов, IN[3] - длина семейства УГО, IN[4] - вектор фактического элемента, IN[5] - четверть, в которой располагается элемент (это уже не нужно по идее). И собственно возникает ошибка "The line is not in the plane of view. Parameter name: line". P.s. лист создаю на чертежных видах.
Попробовал уменьшить значения X, Y, Z и Length соответственно у векторов, через команду Scale, тоже не помогло
В ваших ответах очень сложно ориентироваться.
Вы представьте, что Вы пишете скрипт уже некоторое время и в нем ориентируетесь. Сюда же скинули лишь фрагмент питон кода и текстовое описание что подается и куда. Разобраться с типами в текстовом представлении достаточно сложно, и займет целую кучу времени.
Скиньте скриншот вашего скрипта, с развернутыми нодами, чтобы было видно что получаете, в это же сообщение приложите картинку с кодом python. Это поможет вникнуть в вашу задумку и попытаться найти ошибку.
Пока что, на данный момент, мне видится проблема в том, что вы линию рисуете не в плоскости вида, но это только предположение
BIM-менеджер
Соавтор шаблонов ADSK КЖ/КМ 2021
Инженер-проектировщик КР, КЖ
Телеграм
Правила форума и некоторые нюансы по работе с текстовым редактором