Python Script Gabarit de vues 3D

Bonjour à tous,

J’essaye d’associer à chaque vue 3D un gabarit différents, j’ai essayé avec un script python mais étant débutante je bloque assez rapidement. Avez vous une idée ??


image

Merci de votre aide
Pauline

Bonjour,

Connecte dans le IN[0] les vues 3D et dans le IN[1] les gabarits de vues (Ce qui sort du noeud View CreateViewTemplate).

Bonne journée

Bha c’est ce que j’ai fait là non ?
IN[0] est relier à mes vues donc là au nœud View.SetDiscipline et IN[1] est relier au nœud List.Flatten car après le nœud View CreateViewTemplaye je modifie juste leur nom.

Quelle est l’erreur dans le noeud python?

Erreur du nœud Python :

Avertissement:IronPythonEvaluator.EvaluateIronPythonScript l’opération a échoué.
Traceback (most recent call last):
** File «  », line 14, in **
AttributeError: ‹ AxonometricView › object has no attribute 'ViewTemplateId’

Il te manque un UnwrapElement et une transaction pour faire les modifs :slight_smile:

Je n’ai jamais si à quoi ça servait le Unwrap mais je suis sûr que d’autre ici vont répondre à cette question.
Le transaction permet d’autoriser des modifications du modèle.

Voilà le code:

import clr
clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *

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

TransactionManager.Instance.EnsureInTransaction(doc)

view = UnwrapElement(IN[0])
viewtemplate = IN[1]

j=0
for i in view:
	i.ViewTemplateId = ElementId(viewtemplate[j].Id)
	j=j+1

TransactionManager.Instance.TransactionTaskDone()

OUT = view
2 « J'aime »

Merci beaucoup, ça fonctionne très bien.