"le stockage du paramètre n'est pas une chaine" lors du réimport Excel, de Dynamo vers Revit
CD
Christian Deymonnaz
20 juin 2020
3834 0 5 0
Bonjour à tous,
Je bloque sur un script Dynamo
Le problème: j'ai besoin d'extraire la surface de base d'un modèle générique utilisé comme Réservation (cette réservation a une forme irrégulière), (il y a plusieurs réservations, toutes de formes différentes),
Ma démarche est de récupérer la surface de base, via Dynamo
Avec le script j'arrive à extraire les infos de l'élément dont la surface, je l'exporte dans Excel, ça marche
Par contre lorsque je veux réimporter les données Excel (seulement la Surface), Dynamo m'indique que "le stockage du paramètre n'est pas une chaine"
_Est-ce que cela vous inspire?
J'avais entendu parlé de listes, mais là, je ne vois pas
_Est-ce qu'il faut que je rajoute un noeud particulier entre "Element.SetParameterByName" et "SelectModelElement"?
_Est-ce qu'il faut que je convertisse mon fichier Excel?
_Est-ce que je suis carrément à côté de la plaque?
D'avance Merci pour vos suggestions
Christian
Je bloque sur un script Dynamo
Le problème: j'ai besoin d'extraire la surface de base d'un modèle générique utilisé comme Réservation (cette réservation a une forme irrégulière), (il y a plusieurs réservations, toutes de formes différentes),
Ma démarche est de récupérer la surface de base, via Dynamo
Avec le script j'arrive à extraire les infos de l'élément dont la surface, je l'exporte dans Excel, ça marche
Par contre lorsque je veux réimporter les données Excel (seulement la Surface), Dynamo m'indique que "le stockage du paramètre n'est pas une chaine"
_Est-ce que cela vous inspire?
J'avais entendu parlé de listes, mais là, je ne vois pas
_Est-ce qu'il faut que je rajoute un noeud particulier entre "Element.SetParameterByName" et "SelectModelElement"?
_Est-ce qu'il faut que je convertisse mon fichier Excel?
_Est-ce que je suis carrément à côté de la plaque?
D'avance Merci pour vos suggestions
Christian
Réponses
Bonjour à tous,
Complément d'infos pour le message précédent: Récupération d'informations via Dynamo
Complément d'infos pour le message précédent: Récupération d'informations via Dynamo
CD
Bonjour,
Sans pouvoir tester, ne prends pas en compte mes commentaires comme une vérité mais si je ne me trompe pas en regardant ton code :
Lorsque tu extrait les données, tu récupères la valeur "4.90m²" (qui est un nombre) mais aussi le nom du paramètre "Surface" (qui est une chaine de caractères).
Quand tu réimportes depuis Excel, tu essaie de lui mettre dans la valeur surface => "Surface : 4.90m²" qui est forcément une chaine de caractères alors que revit voudrait juste un nombre.
Pour ma part j'essaierai d'extraire dans une colonne le nom du paramètre et dans l'autre colonne, sa valeur associée.
Par contre, ton paramètre surface est un champ que tu renseignes manuellement dans Revit? Parce que si c'est revit qui le calcule, je ne pense pas que tu puisses lui modifier sa valeur même via dynamo.
Autre chose, juste avant le "set parameter..." sur le noeud où tu as la liste des paramètres, il faudrait un "getitematindex" 19.
Pour insérer juste le bon champ.
En espérant que ça puisses t'aider.
A+
Sans pouvoir tester, ne prends pas en compte mes commentaires comme une vérité mais si je ne me trompe pas en regardant ton code :
Lorsque tu extrait les données, tu récupères la valeur "4.90m²" (qui est un nombre) mais aussi le nom du paramètre "Surface" (qui est une chaine de caractères).
Quand tu réimportes depuis Excel, tu essaie de lui mettre dans la valeur surface => "Surface : 4.90m²" qui est forcément une chaine de caractères alors que revit voudrait juste un nombre.
Pour ma part j'essaierai d'extraire dans une colonne le nom du paramètre et dans l'autre colonne, sa valeur associée.
Par contre, ton paramètre surface est un champ que tu renseignes manuellement dans Revit? Parce que si c'est revit qui le calcule, je ne pense pas que tu puisses lui modifier sa valeur même via dynamo.
Autre chose, juste avant le "set parameter..." sur le noeud où tu as la liste des paramètres, il faudrait un "getitematindex" 19.
Pour insérer juste le bon champ.
En espérant que ça puisses t'aider.
A+
JP
Bonjour,
Effectivement le fait de passer par le noeud
Il faudrait utiliser le noeud

Ou encore passer par le noeud

Effectivement le fait de passer par le noeud
Element.Parametersrenvoie une liste de chaines de caractères
Il faudrait utiliser le noeud
Element.GetParameterValueByNamepour n'extraire que la valeur du paramètre Surface, également Element.Id pour ce qui est de l'dentifiant,
Ou encore passer par le noeud
Element Parameters Properties (GenuisLoci)pour récupérer tous les paramètres de l'objet.
BD
Bonjour à vous,
Un grand Merci pour votre éclairage sur un langage qui est un peu obscur pour moi qui ne connait pas la programmation,
en fait je regarde des vidéos sur le sujet et j'essaye d'adapter à un sujet particulier…
Encore Merci pour vos réponses
Christian
Un grand Merci pour votre éclairage sur un langage qui est un peu obscur pour moi qui ne connait pas la programmation,
en fait je regarde des vidéos sur le sujet et j'essaye d'adapter à un sujet particulier…
Encore Merci pour vos réponses
Christian
CD


