revit : 2020
dynamo core : 2.3.0.5885
dynamo Revit : 2.3.0.7661
Bonjour, j’ai un problème avec mon script python dans dynamo quand j’utilise une boucle for j’obtient l’erreur suivante :
Avertissement:IronPythonEvaluator.EvaluateIronPythonScript l’opération a échoué.
Traceback (most recent call last):
File “”, line 30, in
NameError: name ‘i’ is not defined
quand j’utilise se code for en dehors de revit il fonctionne mais pas dans revit.
voici mon code python :
Charger les bibliothèques DesignScript et Standard Python
import sys
import clr
clr.AddReference(‘ProtoGeometry’)
from Autodesk.DesignScript.Geometry import *
Import RevitNodes
clr.AddReference(“RevitNodes”)
import Revit
Import Revit elements
from Revit.Elements import *
Import DocumentManager
clr.AddReference(“RevitServices”)
import RevitServices
from RevitServices.Persistence import DocumentManager
import System
Les entrées effectuées dans ce noeud sont stockées sous forme de liste dans les variables IN.
cdc_debut = IN[0]
cdc_fin = IN[1]
boundingboxintersect = IN[2]
indextot = len(boundingboxintersect)
Placer votre code au-dessous de cette ligne
stock =
test = len(i)-1
for i in boundingboxintersect:
if i[test] == cdc_debut:
stock.append(i)
Affectez la sortie à la variable OUT.
OUT =
est ce que vous avez déjà eu ce problème et si oui comment le résoudre ?
merci d’avance pour vos réponse
cordialement
maxime cayeux
Revit : 2020
Noyau dynamo : 2.3.0.5885 Dynamo
Revit : 2.3.0.7661
Hello, I have a problem with my python script in dynamo when I use a loop for I get the following error:
Avertissement:IronPythonEvaluator.EvaluateIronPythonScript l’opération a échoué.
Traceback (dernier appel le plus récent) :
Fichier “”, ligne 30, dans
NameError : le nom “i” n’est pas défini
when i use this code for outside of revit it works but not in revit.
here is my python code:
Charger les bibliothèques DesignScript et Standard Python
import sys
import clr
clr.AddReference(‘ProtoGeometry’)
depuis Autodesk.DesignScript.Geometry import *
Importer des nœuds Revit
clr.AddReference(“RevitNodes”)
importer Revit
Importer des éléments Revit
depuis l’import Revit.Elements *
Importer le gestionnaire de documents
clr.AddReference(“RevitServices”)
importe RevitServices
depuis RevitServices.Persistence importe DocumentManager
système d’importation
Les entrées effectuées dans ce nœud sont transférées sous forme de liste dans les variables IN.
cdc_debut = IN[0]
cdc_fin = IN[1]
boundingboxintersect = IN[2]
indextot = len(boundingboxintersect)
Placer votre code au-dessous de cette ligne
actions =
test = len(i)-1
for i in boundingboxintersect :
if i[test] == cdc_debut :
stock.append(i)
Affectez la sortie à la variable OUT.
SORTIE =
Have you had this problem before and if so how did you fix it?
Thank you in advance for your answer
Cordially
maxime cayeux
1 Like
@maxime.cayeux1 ,
i am courious … but i understand only english, german and spanish.
KR
Andreas
@maxime.cayeux1 ,
i cleant up your code a bit… …what do you try exactly?
import sys
import System
import clr
clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *
from Autodesk.Revit.DB.Structure import *
clr.AddReference('RevitAPIUI')
from Autodesk.Revit.UI import *
clr.AddReference('System')
from System.Collections.Generic import List
clr.AddReference('RevitNodes')
import Revit
clr.ImportExtensions(Revit.GeometryConversion)
clr.ImportExtensions(Revit.Elements)
clr.AddReference('RevitServices')
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
doc = DocumentManager.Instance.CurrentDBDocument
uidoc=DocumentManager.Instance.CurrentUIApplication.ActiveUIDocument
#Les entrées effectuées dans ce noeud sont stockées sous forme de liste dans les variables IN.
cdc_debut = IN[0]
cdc_fin = IN[1]
boundingboxintersect = IN[2]
indextot = len(boundingboxintersect)
stock = []
test = len(i)-1
for i in boundingboxintersect:
if i[test] == cdc_debut:
stock.append(i)
OUT = stock
KR
Andreas
Im on my phone so i could be reading wrong, but i think your problem is in your line:
test = len(i)-1
You havent defined i yet at that point. You define i in the next line with the for loop.
I think perhaps putting the “test” inside the for loop will help?
Bonjour je cherche à faire la même chose que dans le code suivant
ce que je suis en train de faire c’est :
de cherché l’élément in[0]
dans la liste in[2]
si l’élément est trouvé dans l’index 1
alors stocker l’index 1 dans une liste
Hello I am trying to do the same as in the following code
what I’m doing is:
look for the element in[0]
in the list in[2]
if the element is found in index 1
then store index 1 in a list