Доброго времени суток, уважаемые коллеги, столкнулся на мой взгляд с глупой проблемой. В общем, беру вектор из элементов трубопроводной системы и по нему создаю линию в чертежном виде 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
Автор инструментов в плагине BIM2B Template Tools
Инженер-проектировщик КР, КЖ
Телеграм
Правила форума и некоторые нюансы по работе с текстовым редактором
@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
Автор инструментов в плагине BIM2B Template Tools
Инженер-проектировщик КР, КЖ
Телеграм
Правила форума и некоторые нюансы по работе с текстовым редактором
