Définir le gabarit de vue 3D

Articles liés à l’interopérabilité Dynamo avec Revit (éléments, plugins ou API).

Bonjour à tous,

Dans mon script, j’ai créer des gabarits de vues pour chaque vues 2D et 3D et avec le nœud Views.SetViewTemplate j’aimerais affecter les gabarits correspondant à leur vue.
J’ai très bien réussi pour les vues en plans mais pour les vues 3D j’ai ce message d’erreur :

Avertissement:Views.SetViewTemplate attend le ou les types d’argument (Revit.Elements.Views.View, Revit.Elements.Views.View), mais a été appelé avec (Revit.Elements.Views.AxonometricView[], Revit.Elements.Element[]).

Je ne comprend pas car j’ai pourtant fait exactement la même chose pour les deux types de plans !

Pouvez vous m’aider ?!

Merci d’avance
Pauline

Bonjour,
voici un lien qui devrait te rendre service.
Je n’ai malheureusement que peu de connaissances pour pouvoir solutionner
J’ai essayé néanmoins d’appliquer via le nœud (Element.SetParamterByName) pour comprendre

je pense qu’il faut essayer d’insérer cela dans python (revit API suivant lien) je ne sais pas si possible avec noeuds dynamo

bon courage

cordialement
christian.stan

Ok merci, je vais essayer tous ça.

Merci

1 « J'aime »

J’ai trouvé un code python qui remplace le nœud Views.SetViewTemplate mais pour les vues 3D :
image
IN[0] = vues
IN[1] = gabarit des vues

# Charger les bibliothèques DesignScript et Standard Python
import sys
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)

# Les entrées effectuées dans ce noeud sont stockées sous forme de liste dans les variables IN.
view = UnwrapElement (IN[0])
viewtemplate = IN[1]

# Placer votre code au-dessous de cette ligne
j = 0
for i in view : 
	i.ViewTemplateId = ElementId(viewtemplate[j].Id)
	j=j+1

TransactionManager.Instance.TransactionTaskDone()
# Affectez la sortie à la variable OUT.
OUT = 0
1 « J'aime »