【发布时间】:2020-06-21 03:38:19
【问题描述】:
我已经构建了一个脚本,以将多个面板放置在 Revit 中不同方向的不同表面上。 为了使这成为可能,我制作了一个简单的 python 循环。仍有一些问题需要解决,但脚本适用于小表面。
当我将 Surface 变大时,出现以下错误:
标准错误:无法转换身体! : ILLEGAL_ENTITY_MODIFICATION – API_BEGIN/END 块外的实体修改 有谁知道如何解决这个问题?
我复制了下面的脚本:
import clr
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *
#The inputs to this node will be stored as a list in the IN variables.
#1 tot 100 tussenstap 10.
#geometry.translate(geometry,vector,afstand).
dataEnteringNode = IN
aantalsublsts = IN[0]
VectUassublsts = IN[1]
VectVassublsts = IN[2]
Geosublsts = IN[3]
vectorlengteVlst = IN[4]
afstandV = IN[5]
vectorlengteUlst = IN[6]
afstandU = IN[7]
n = 0
output = []
for x in range(aantalsublsts):
Geo = Geosublsts[n]
VectUas = VectUassublsts[n]
VectVas = VectVassublsts[n]
vectorlengteV = vectorlengteVlst[n]
vectorlengteU = vectorlengteUlst[n]
afstandenU = range(0,int(vectorlengteU),afstandU)
afstandenV = range(0,int(vectorlengteV),afstandV)
n = n + 1
for y in afstandenU:
for z in afstandenV:
Geo2 = Geometry.Translate(Geo,VectUas,y)
output.append(Geometry.Translate(Geo2,VectVas,z))
#Assign your output to the OUT variable.
OUT = output
沃特·希尔霍斯特
【问题讨论】: