【问题标题】:REVIT API StandardError: Unable to transform the body! : ILLEGAL_ENTITY_MODIFICATION -- entity modification outside API_BEGIN/END blockREVIT API StandardError:无法转换身体! : ILLEGAL_ENTITY_MODIFICATION -- API_BEGIN/END 块外的实体修改
【发布时间】: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

沃特·希尔霍斯特

【问题讨论】:

    标签: python revit


    【解决方案1】:

    听起来您的代码可能没有在有效的 Revit API 上下文中运行。

    你是如何运行这段代码的?

    【讨论】:

    • 它从发电机内部运行。问题已经解决了。数组太大而无法计算。之后我ve combined several panels first and then made second array with less steps. I didnt 得到错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-13
    • 2021-11-23
    • 2012-08-18
    相关资源
    最近更新 更多