mercredi 4 mai 2022
  22 réponses
  1.9K vues
  Suivre cette discussion
Bonjour,

J'ai créer un script dynamo afin de créer plusieurs nomenclatures d'éléments. Le nombre de nomenclatures créer dépend d'un nombre correspondant à un cyclage de voiles (dans mon exemple il y a 12 jours de cyclage)

Pour créer ce script, dans un premier temps (groupe en gris), je créer les noms de nomenclatures.
Ensuite, je créer la nomenclature (groupe rose).
Je lui ajoute des champs de nomenclatures (groupe orange).
Ensuite, je souhaite filtrer mes nomenclature en fonction du paramètre "Jour de coulage" pour que dans chaque nomenclature j'obtient uniquement les voiles réalisé le même jour:

exemple : Quantitatif Voiles Jour 01 == uniquement voiles avec le paramètre Jour de coulage = 01
Quantitatif Voiles Jour 02 == uniquement voiles avec le paramètre Jour de coulage = 02

J'aimerais donc obtenir ce résultat : Capture_Correct.png

Or j'obtient ce résultat : Capture vide.png
soit une nomenclature vide...

Voici mon script dynamo : création de nomenclature.png

Pouvez vous m'aider ??

Bien cordialement
Pauline
1 year ago
·
#17492
0
Votes
Undo
Cette image est mieux ! création de nomenclature.png
0
Votes
Undo
Bonjour,

Pour le moment je ne peux pas corriger le problème car il me manque pas mal d'information sur le script (leurs configuration, les divers erreurs, etc)

Pouvez vous aussi indiquer votre version de Dynamo et de Revit ? je pourrais etre sure d'utiliser la bonne version de dynamo pour lire votre script.

Je me pose une question, pourquoi n'utilisez vous pas un gabarit de vue ? cela vous économiserais toutes la partie "champ de nomenclature" tout en préparant une mise en page.

Cordialement,
Raphaël
1 year ago
·
#17496
0
Votes
Undo
Bonjour,

J'utilise Revit 2022 et Dynamo 2.10. Le problème est bien là, je n'ai aucune erreur qui apparait ...

Ce script fait partie d'un plus grand projet, ou j'essaye d'automatiser la rotation de banches, j'aimerais donc réaliser la majorité de mes étapes avec la programmation.

Cordialement,
Pauline
0
Votes
Undo
Bonjour Pauline,

Comme l'indique Raphaël, en l'état impossible de tester. L'idéal serait d'avoir le script et ses dépendances.
Faute de mieux, pouvez-vous affichez le contenu le l'onglet filtres de cette nomenclature ? Dans ce type de scripts, le problème de lacing peut conduire à l'application de plusieurs filtres qui ne fonctionnent pour aucun élément, voir image.
1 year ago
·
#17498
0
Votes
Undo
filtre.png Je comprend bien, mais faute de confidentialité, je ne peux partager le fichier Revit.

Par exemple, ici :
exemple voiles.png

J'ai quatre voiles réalisé respectivment 4 jours différent.

Le bleu le jour 01 comme suit :
voiles jour de coulage.png

le voile rouge à pour jour de coulage le jour 02, le vert le jour 03 et le rose le jour 04.

Dans mes nomenclatures, je filtre par jour de coulage, j'ai donc ça :
filtre.png

mais je n'obtient rien aucun résultat. Sachant que manuellement si je remet une des informations comme Jour de coulage / égal ou 01 et que je valide, là elle apparaît. Je sais pas si vous comprenez bien, je vous met une vidéo.

Cordialement,
Pauline
1 year ago
·
#17499
0
Votes
Undo
Voila la vidéo
0
Votes
Undo
Nous n'avons pas besoin du fichier Revit, juste le script Dynamo (fichier en .dyn) devrais être nécessaire pour trouver une solution. Concernant les paramètres lier au murs, nous pouvons les récupérer des impressions d'écrans que vous nous avez transmis.
1 year ago
·
#17501
0
Votes
Undo
Ah oui ok !
0
Votes
Undo
Merci, je regarderais ça ce soir
0
Votes
Undo
Bonjour,

Pouvez vous m'indiquer la catégorie des éléments que vous voulez intégrer dans la nomenclature ?
Je pense avoir mis le doigt sur quelque chose mais j'ai besoin de cette info pour être sure.
1 year ago
·
#17528
0
Votes
Undo
Bonjour,

Il s'agit d'éléments avec Catégorie d'origine = Murs
0
Votes
Undo
Ok, Donc j'ai compris la source du problème, dans votre nœud "category" il faut mettre mur, actuellement c'est éléments.

Cela devrais aider
1 year ago
·
#17530
0
Votes
Undo
Je ne peux pas changer la category de Elements à Murs car se sont les éléments qui possèdent les informations que je cherche à montrer dans les nomenclatures par les Murs.

Il n'y a pas un lien avec le faite qu'à chaque fois que je créer une nomenclature elle m'affecte la phase _J 01 en phase de construction alors qu'à aucun moment je ne l'es demander ??

Comment je peux faire pour enlever la phase ?

Edit : J'ai réussi à la modifier en la remplaçant par Nouvelle construction mais ça ne changer rien ...
0
Votes
Undo
Une Nomenclature de mur ne peux remonter que des informations qui sont dans les murs.
Donc vous devez transférer/copié l'information venant de vos éléments dans vos murs, pour qu'elle puisse apparaitre dans votre nomenclature de mur.

Si votre variable jour de coulage est toujours identique à la phase, je n'en vois pas l'intérêt. Au quel cas vous pourriez vous baser sur les phases de construction.

Concernant les phases, cela ne doit pas poser problème car une vue (comme les nomenclatures) est toujours associé à une phase et un élément doit avoir une phase de construction même si la phase de démolition peut être nul. Si c'était un problème lié à la phase de la nomenclature vous auriez à minima les murs de la phases, ce qui n'est pas le cas.
Personnellement j'ai tendance à travailler avec 1 voile par phase et potentiellement un paramètre jour de coulage pour indiquer les voiles qui sont coulé le même jour et je n'ai pas de soucis la dessus.


N'hésiter surtout pas à m'indiquer si je ne suis pas assez claire selon vous.
1 year ago
·
#17532
0
Votes
Undo
Je comprend bien qu'une nomenclature de mur ne peux remonter que des informations qui sont dans les murs c'est pour ça que j'ai créer des nomenclatures d'éléments pour avoir les informations nécessaire.

Le problème c'est que j'ai créée plusieurs nomenclatures d'éléments, trois, dont deux d'entres elles fonctionnent très bien mais pas la dernière.

Idem pour des nomenclatures de modèles génériques je n'obtient que des nomenclatures vides. Le problème vient du moment ou je créer et ajoute des filtres car juste avant les nomenclature sont remplis.

Voici un récap des nomenclatures je voulais voir la différence entre elles : (en gris sont celles qui fonctionne les autres restent vide)

comparatif nomenclatures.png
0
Votes
Undo
Avez vous essayer de les faire dans Revit (sans passer par dynamo) ? les nomenclature sont elle vide ? si oui on a trouvé la source du problème.
Avez vous observé les sortie de chaque noeud de votre script pour localiser la source du problème (s'il viens du script) ?
1 year ago
·
#17534
0
Votes
Undo
Oui quand je le fait via Revit ça fonctionne très bien, c'est pour ça que je ne comprend pas d'où vient le problème...

J'ai également regarder chaque sortie de nœud et aucune erreur ou problème, j'ai même comparer entre un script qui fonctionne et l'autre non, les sorties des nœuds on tous le même type et fonctionne très bien mais une des nomenclature reste vide.
1 year ago
·
#17535
0
Votes
Undo
J'ai trouvé un code Python qui permet de créer les filtres et de les appliquer à la nomenclature. Avec ce code ça fonctionne !! Seule problème un de mes filtres consistent à filtrer selon le niveau de base je dois donc modifier le script pour qu'il accepte en entré ce type de paramètre mais je ne sais comment faire.

Voici le code python :


import clr
clr.AddReference("ProtoGeometry")
from Autodesk.DesignScript.Geometry import *
# Dynamo Example
import clr
clr.AddReference("RevitAPI")
clr.AddReference("RevitAPIUI")
from Autodesk.Revit.DB import *
from Autodesk.Revit.UI import *
# RevitServices
clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
# doc and uiapp

doc = DocumentManager.Instance.CurrentDBDocument
uiapp = DocumentManager.Instance.CurrentUIApplication
app = uiapp.Application

def tolist(obj) :
if isinstance(obj, list):
return UnwrapElement(obj)
else :
return [UnwrapElement(obj)]

Views = tolist(IN[0])
FieldId = tolist(IN[1])
Level = IN[2]

Filters = list()
for Id in FieldId:
F = ScheduleFilter(ScheduleFieldId(Id),ScheduleFilterType.Equal,Level)
Filters.append(F)

TransactionManager.Instance.EnsureInTransaction(doc)

for View,Filter in zip(Views,Filters):
(UnwrapElement(View).Definition).InsertFilter(Filter,0)

TransactionManager.Instance.TransactionTaskDone()

OUT = IN[0]


Le code que je cherche à modifier est celui en jaune qui m'indique comme erreu :
Avertissement:IronPythonEvaluator.EvaluateIronPythonScript l'opération a échoué.
Traceback (most recent call last):
File "<string>", line 33, in <module>
TypeError: expected ElementId, got Level


code python script.png
1 year ago
·
#17545
0
Votes
Undo
Bonjour,
Dans le script de base, il faudrait voir du côté de la valeur Jour de coulage (format texte ou numérique ??)
1 year ago
·
#17546
0
Votes
Undo
le paramètre Jour de coulage est de type Texte
Mohamed KHETTAB
updated the category from to Modélisation, simulation et visualisation — 7 months ago
4 months ago
·
#18512
0
Votes
Undo
Bonjour Pauline,

Comme l'indique Raphaël, en l'état impossible de tester. L'idéal serait d'avoir le script et ses dépendances.
Faute de mieux, pouvez-vous affichez le contenu le l'onglet filtres de cette nomenclature ? Dans ce type de scripts, le problème de lacing peut conduire à l'application de plusieurs filtres qui ne fonctionnent pour aucun élément, voir image.


Bonjour @Raphaël Georges:cf171f3c# ;)

Ton Histoire de "lacing" m'intéresse, j'ai exactement ce souci je crois.
filtre 1 / 2 /3 dans nomenclature 1 / 2 /3 et lieu d'avoir filtre1 sur n1 / filtre2 sur n2 / ....
4 months ago
·
#18514
0
Votes
Undo
Solution Trouvée ! 

C'était bien le "lacing" (combinaison en français).

Pour mieux comprendre si il y a des curieux : 
https://atgusa.com/lacing-in-dynamo-explained/
There are no replies made for this post yet.
Le Cron démarre