Il existe un nœud Dynamo qui permet de créer des zones de pochage (ou zones remplies) "FilledRegion.ByCurves". Cependant, celui-ci ne permet de gérer le style des lignes de contour.
Nous vous proposons une solution qui permet de modifier ces styles de ligne sans avoir de dépendance de package. Pour cela il faudra créer un script Python appelé "FilledRegion.SetGraphicsStyle":
Il faut créer un noeud de script Python à 2 entrées nommé "FilledRegion.SetGraphicsStyle".
La première (IN[0]) attend la liste de région de pochage (FilledRegion) à traiter.
La deuxième(IN[1]) attend le style de ligne de contour (GraphicsStyle) à remplacer par zone de pochage listé.
Dans cet exemple, on sélectionne de style de ligne en recherchant son nom ou une partie à partir d'une liste de style de ligne présente dans le projet (Groupe "Selection du style de ligne")
Le groupe "Egaliser le nombre ...." permet d'associer à chaque zone remplie à traiter ce même style de ligne.
Voici le script Python utilisé dans le nœud de script (en version CPython3) :
import clr
import sys
clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *
clr.AddReference('RevitServices')
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
doc = DocumentManager.Instance.CurrentDBDocument
def tolist(elem1):
if elem1 is None:
return []
return elem1 if isinstance(elem1, (list, tuple, set)) else [elem1]
try:
FRegion = tolist(UnwrapElement(IN[0]))
GStyle = tolist(UnwrapElement(IN[1]))
except NameError:
print("Not valid Entry : expected FilledRegion & GraphicsStyle")
TransactionManager.Instance.EnsureInTransaction(doc)
for F_R, G_S in zip(FRegion, GStyle):
if FilledRegion.IsValidLineStyleIdForFilledRegion(doc, G_S.Id): F_R.SetLineStyleId(G_S.Id)
TransactionManager.Instance.TransactionTaskDone()
OUT = FRegion
A bientôt sur votre blog Aplicit!
Laisser un commentaire