Accéder au contenu principal

Le guide et le média de l'écosystème construction numérique et BIM

Espace membre

Thématique header

Dynamo - Obtenir la valeur d'un paramètre de type

BL Benoît LECRIOUX
4 juillet 2016
16.37K
8
Bonjour à tous et notamment aux utilisateurs de Dynamo,
je cherche à faire quelque chose à priori simple: obtenir la valeur de la hauteur d'une porte et ce, pour toutes les portes du projet.
Je récupère bien toutes les occurences de portes du projet mais lorsque j'essaie d'obtenir une valeur d'un des paramètres j'obtiens des erreurs. A noter que j'utilise des customs nodes du package Archi-Lab (j'ai essayé avec un revit anglais, à priori ça ne vient pas de là).
Je vous ai joint le screenshot.

Photos

hxrel-u

Morphé
Plugin pour Grasshopper et Rhino 8 destiné à la fabrication additive et à la conception avancée, introduisant la modélisation implicite et voxel pour la création de géométries complexes.
BIMR.NET
Modeleur BIM textuel fonctionnant entièrement dans le navigateur, permettant d'écrire des scripts Python pour générer des fichiers intermédiaires et compiler des modèles en IFCX pour la visualisation.
ZWCAD
Logiciel de CAO 2D et 3D orienté dessin DWG, permettant aux architectes, ingénieurs et modeleurs de produire et modifier des plans, annotations et mises en page tout en exploitant des...
PIComposer Basic Edition
Outil de gestion de données BIM et PMI basé sur le schéma ISO 10303, permettant de restructurer, transformer et transférer des modèles IFC et STEP via une interface de programmation...
GSA
Logiciel de calcul et d’analyse par éléments finis pour structures complexes, permettant de modéliser la géométrie et les chargements avec une séparation explicite entre structure et modèle d’analyse.
ggRhinoIFC
Plugin pour Rhino et Grasshopper facilitant l'import, la manipulation, la conversion et l'export de fichiers IFC, permettant aux modeleurs BIM et architectes de structurer leurs données IFC.
ArcGIS Pro
Logiciel SIG bureautique centralisant cartes 2D, scènes 3D et données spatiales pour visualiser, éditer et analyser des projets complexes, notamment dans les domaines de l'urbanisme et des infrastructures.
Fologram
Plugin reliant Rhino et Grasshopper à des appareils de réalité mixte pour visualiser des modèles, piloter des interactions paramétriques et assister la fabrication ou l'implantation sur site.
Rhino.Inside.Revit
Plugin permettant d'exécuter Rhino et Grasshopper au sein de Revit pour créer des éléments natifs et piloter la conception paramétrique, destiné aux modeleurs BIM, architectes et ingénieurs.
Versur
Plateforme d’orchestration de workflows IA pour les architectes et designers, permettant d’assembler des agents spécialisés en graphes visuels pour automatiser les processus de conception métier.
Armox AI
Plateforme cloud de génération visuelle par IA permettant aux architectes et designers de transformer des croquis et plans en rendus photoréalistes et vidéos via des workflows nodaux réutilisables.
Wallacei
Plugin pour Grasshopper 3D dédié à l'optimisation évolutionnaire multi-objectifs, permettant aux architectes et designers d'analyser, de regrouper et de sélectionner des variantes de conception.
Rhino 3D
Application de modélisation 3D polyvalente pour la conception géométrique, le paramétrage via Grasshopper et la préparation à la fabrication, utilisée pour les formes libres et les études urbaines.
Tapir
Plugin open source pour Archicad exposant les fonctions internes via une API JSON, permettant le pilotage par Python, Grasshopper et des agents IA en langage naturel.
ShapeDiver
Plateforme cloud exécutant des définitions Grasshopper dans un navigateur pour les publier comme applications 3D interactives, avec des modes d’exposition variés et des intégrations métiers.
Runchat
Plateforme de conception assistée par agents combinant un chat, un canvas visuel de workflows et des connecteurs vers des logiciels de CAO pour générer des images, des scripts et des...
Nodepen
Plateforme de conception générative permettant de créer, exécuter et partager des scripts Grasshopper dans le navigateur, avec édition collaborative et un agent conversationnel intégré.
Beegraphy
Plateforme cloud de conception paramétrique avec éditeur visuel par nœuds, elle permet de générer des géométries 3D, des configurateurs intégrables et des fichiers de fabrication.
OPEN GEOMETRY
Noyau CAO open source natif web, il fournit les briques de bas niveau pour construire des outils de conception architecturale dans le navigateur, tels que la modélisation de plans et...
Karamba
Plugin pour Grasshopper (Rhino) de calcul de structure par éléments finis, il permet la conception paramétrique, l'analyse de second ordre, l'optimisation de sections et l'export vers Robot ou Rstab.
Rhinoceros Interface
Plugin pour Rhino et Grasshopper qui intègre des objets de calcul structurel, des appuis, des charges et des propriétés de section pour constituer un modèle analytique directement dans l'environnement de...
Raven
Plugin pour Rhino 8 ajoutant une interface en langage naturel dans Grasshopper pour construire, modifier et organiser des définitions paramétriques, avec des profils de contexte partageables.
Conduit
Plugin Grasshopper pour Rhinoceros 3D qui affiche des visualisations de données en direct dans le viewport 3D, met à jour les rapports au fil des modifications du graphe et est...
LunchBox
Plugin pour Grasshopper centré sur la modélisation paramétrique, le traitement de données et l’analyse géométrique, incluant des composants d’apprentissage automatique pour architectes et designers.

hxrel-m

Kroqi
Plateforme collaborative pour projets de construction, elle centralise GED, visas, planning Gantt, partage documentaire et visionneuse BIM, avec des services métiers intégrés et une application mobile.
A la une
Kabandy
Plateforme cloud de gestion des quantités de construction à partir de maquettes BIM, elle lit les fichiers IFC et Revit, extrait les métadonnées, relie les éléments à des métrés visuels...
A la une
Caneco BIM
Plugin Revit pour les projets d'installations électriques synchronisant en temps réel les données avec Caneco BT pour automatiser le routage des câbles et enrichir la maquette.
Guerrilla Ops
Outil open source de gestion et d'exploration de données d'actifs centré sur COBie, permettant de parcourir les équipements, gérer les documents et auditer la qualité des classeurs directement dans le...
new.family
Outil web de génération de familles Revit paramétriques à partir de descriptions textuelles, d'URL de produits ou de fiches techniques, destiné aux modeleurs BIM et architectes.
MACHINE AEC
Plateforme d'analyse de maquettes numériques fédérées au format IFC permettant de détecter des risques constructifs et d'assurer une révision professionnelle via BCF.
BIMR.NET
Modeleur BIM textuel fonctionnant entièrement dans le navigateur, permettant d'écrire des scripts Python pour générer des fichiers intermédiaires et compiler des modèles en IFCX pour la visualisation.
Geopogo Claude to Revit Plugin
Plugin connectant les assistants IA Claude et GPT à Autodesk Revit pour créer et modifier par le langage naturel des éléments BIM natifs destinés aux architectes et modeleurs.
Syntopy
Plateforme web regroupant une bibliothèque d'analyse spatiale et des applications de modélisation topologique pour les BIM managers et architectes.
TrussLab
Application web de modélisation, d'analyse par éléments finis, de vérification réglementaire et d'optimisation paramétrique de fermes métalliques dédiée aux ingénieurs structure et modeleurs BIM.
Resolving
Plateforme de gestion de projet pour la construction et l'immobilier regroupant GED, suivi terrain, formulaires, planning et revue BIM.
SmartRouting
Plugin natif pour Revit dédié à la tuyauterie industrielle, permettant de calculer automatiquement des chemins 3D, d'insérer des composants et d'exporter des fichiers PCF.

hxrel-t

nVibe
Plateforme de création d'applications métier permettant aux professionnels de l'architecture, de l'ingénierie et de la construction de concevoir des outils en décrivant leurs besoins en langage naturel.
Reiner AI
Plateforme d'intelligence artificielle combinant un assistant conversationnel et des agents autonomes pour les bureaux d'études et entreprises de construction, intégrant une base normative sectorielle.
Gradon
Agent intelligent destiné aux ingénieurs en infrastructure et en structure, capable de réaliser de bout en bout des travaux de calcul, de rédaction de rapports et de production de plans...
ARES Neo
Solution cloud d automatisation et de production de documentation 2D à partir de modèles Revit, IFC et Rhino, conçue pour générer des plans, coupes, élévations et appliquer des annotations paramétrables.
Conduit AEC
Service logiciel de génération d'applications internes pour Revit, AutoCAD et Autodesk Construction Cloud à partir de descriptions en langage naturel, avec gestion des versions et déploiement ciblé.
Forma Construction Connect
Plateforme d'intégration sans code ou à faible code connectant les modules Forma à des applications tierces pour automatiser les workflows et synchroniser les documents et données projet.
Volve
Plateforme d'analyse documentaire assistée par IA dédiée aux appels d'offres et contrats, permettant de structurer, comparer et vérifier la conformité des dossiers pour les équipes de construction.
PIComposer Basic Edition
Outil de gestion de données BIM et PMI basé sur le schéma ISO 10303, permettant de restructurer, transformer et transférer des modèles IFC et STEP via une interface de programmation...

Solutions citées

ArchiLabs
Plateforme de conception et BIM native navigateur, elle convertit les plans DWG/DXF en modèles...
Dynamo
Environnement de programmation visuelle pour la conception calculatoire, il assemble des graphes de nœuds...
Revit
Logiciel BIM de modélisation bâtiment, il permet de produire une maquette paramétrique unique et...

Réponses

AK adrian konini
·
Voila un petit code pour récupérer les paramètres.
J'espère que sera utile.
cdt
JG Julien G
·
Ok.
Belle petite usine à gaz :)
(intégré dans un nœud personnalisé à en croire la présentation)
BL Benoît LECRIOUX
·
Non car le point trouvé correspond à l'arase inférieure du plancher et la hauteur du linteau comprend l'épaisseur de celui-ci.
JG Julien G
·
Au point 2) le vecteur est égal à la hauteur du linteau recherché non ? Pourquoi ajouter les points 3) et 4) ?
BL Benoît LECRIOUX
·
Je vous fais un petit retour suite à l'aide précieuse de Daniel. Son idée du Ray Cast a porté ses fruits après quelques noeuds supplémentaires.
L'idée du code Dynamo est de tracer un vecteur depuis l'ouverture jusqu'au sol supérieur pour en déduire son altimétrie Z. Si je décortique un peu les étapes:
1) Créer une BoundingBox et en déduire son altimétrie maxi
2) Créer un vecteur allant de ce point maxi au 1er point de rencontre avec le sol supérieur (son arase inférieure donc)
3) Créer un second vecteur d'une longueur arbitraire pour "dépasser" l'épaisseur du sol
4) Créer un 3e vecteur vers le bas pour obtenir l'arase supérieure du sol

Comme il vaut mieux un schéma qu'un long discours, je vous ai mis le code en PJ.

Merci également à Nathan pour son aide.
BL Benoît LECRIOUX
·
Merci Daniel, ça récompensera le fait que je vienne te voir au PRUG !;) (Aller-retour Rennes-Paris en voiture entre 16h et 2h du mat', j'étais bien motivé quand même!)

Je creuse ta solution de mon côté quand même en attendant.
DH Daniel Hurtubise
·
Comme j'aime bien les Bretons envoie un mp et je te contacte demain :)
BL Benoît LECRIOUX
·
Tu veux dire que tu trouves toujours la bonne idée du 1er coup? Allez, avoues que tu n'es pas arrivé à ce niveau sans galérer comme moi...;)
Et puis à défaut d'être productif tout de suite, chercher permet de tomber sur des trucs qui serviront sûrement plus tard.

Je viens de l'ouvrir, j'essaie de comprendre. Ce sont des noeuds que je n'ai pas encore utilisé.
Par contre je ne cherche pas la hauteur de l'ouverture mais la hauteur du linteau, je ne sais pas si la méthode peut s'appliquer quand même?
DH Daniel Hurtubise
·
T'as raison Benoit c’était pas une bonne idée ;)

Regarde mon draft. Ca te permet de trouver le point bas tout de suite, tu refais un raycast par en haut et hop tu as la hauteur de l'ouverture ;)
BL Benoît LECRIOUX
·
Je n'ai pas encore regardé vos réponses mais j'abandonne l'idée de chercher le sol attaché au mur contenant l'ouverture car je viens de constater qu'un même mur peut être attaché à plusieurs sols d'altimétries différentes; je n'obtiendrai donc pas l'info. d'un sol unique que je souhaitais.
Le code Python de Ben Osborne fonctionne correctement pour des éléments joints mais entre une dalle et un mur, la fonction utilisée est "Attacher haut/bas" et non "Attacher la géométrie"; le script renvoie donc "Faux" même s'ils sont attachés.
DH Daniel Hurtubise
·
Je suis partie sur un Ray Cast, voici les fichiers.

Rejoindre la discussion

NN Nathan Nivill
·
Si j'ai bien compris avec ça, ça devrait marcher.
BL Benoît LECRIOUX
·
En fait il doit me manquer le "Combinateur" pour le noeud "List.Combine" mais je ne sais pas quoi mettre (voir PJ)
BL Benoît LECRIOUX
·
Mince, je viens de voir qu'Hexabim avait rendu mon exemple illisible (y'avait des tabulations)...:D

Les 9 sous listes sont:
[0] a et x
[1] a et y
...
[5] b et z
...
[8] c et z
BL Benoît LECRIOUX
·
Bon j'avance doucement sans avoir si je vais arriver au bout...
Comment générer une liste de toutes les combinaisons possibles entre 2 listes. Je voudrais combiner les sols et les murs pour voir s'ils sont joints.
En essayant d'expliquer cela "mathématiquement":
- Liste n°1 contient a,b, et C
- Liste n°2 contient x,y et z
- Je voudrais obtenir une liste 3 avec 9 sous-listes:
[o] [2] [4] [6] [8]
[0]a [0]a [0]b [0]c [0]c
[1]x [1]z [1]y [1]x [1]z
[1] [3] [5] [7]
[0]a [0]b [0]b [0]c
[1]y [1]x [1]z [1]y

Je suis sûr que Dynamo sait faire cela et j'ai trouvé des choses sur internet mais je n'arrive pas à l'appliquer à mon cas...
BL Benoît LECRIOUX
·
Merci Nathan de partager ta réflexion.
En fait c'est la 1ère idée que j'ai eu car ça semble le plus simple à récupérer dans Dynamo. Mais j'ai laissé cette piste car que se passe-t-il quand la dalle ne correspond pas aux niveaux (décaissés, recharges, niveau en fini, dalle en brut...)? Eh bien la hauteur de linteau sera faussée.
Au début je me suis dit que ça couvrirait au moins 80% des cas mais le problème avec l'automatisation c'est que les utilisateurs ont tendance à ne plus se poser la question de comment est obtenu la valeur avec le temps; et on finit par créer plus d'erreur que quand c'était calculé à la main... Je tends donc à trouver un script qui fonctionnerait pour tous les cas, avec les difficultés que ça comporte... J'ai dû mettre un peu de côté le script pour faire autre chose ce matin mais je m'y remets; je vais regarder ce que me donne ce script Python.

Sinon, peut-être qu"en combinant les infos du mur hôte et des niveaux j'arriverais à quelque chose?... je vais voir...
NN Nathan Nivill
·
Ah oui il est préférable de bien maîtriser l'anglais sinon cela peut poser des problèmes de compréhension ...

J'ai réfléchis un peu à ton problème, je pense que récupérer les niveaux ne sera pas forcément suffisant. Il faudra aussi systématiquement associer le niveau inférieur de ta dalle pour obtenir ta hauteur d'étage à l'aide d'une différence entre tes deux altitudes. Sinon cela me parait compliqué d'obtenir ta hauteur de linteau sur la base de la hauteur de porte et l'élévation haute de ta dalle supérieure.

Mais du coup j'ai pensé à une autre solution : Au lieu d'utiliser les Sols, tu peux directement utiliser les niveaux. Sur cette base tu calcules toutes tes hauteurs d'étages (Arase Sup dalle base jusqu'à arase sup dalle haute). En principe ces hauteurs seront correct que le voile soit en extérieur ou en intérieur. Tu filtres également tes portes par niveaux puis pour chaque porte tu déduis la hauteur d'étage correspondante à la hauteur de porte.
Tu devrais alors obtenir tes hauteurs de linteaux.

Je pense que c'est beaucoup plus simple comme solution étant donné que cela t'évites de passer par du code Python. J'ai pas essayé mais cela peut marcher, enfin cela dépend aussi de la complexité de ton projet avec les décalages éventuels des dalles.
BL Benoît LECRIOUX
·
Je vais regarder cela et m'inscrire sur le forum. Merci Nathan.
L'anglais risque de me mettre des freins une fois de plus...:(
NN Nathan Nivill
·
Je suppose donc que tu as donné une hauteur à tes voiles plutôt qu'une contrainte inférieure et une contrainte supérieure ?
Je dessine en général en utilisant les contraintes et la hauteur du voile est donc toujours celle entre ma contrainte inf et ma contrainte sup. Même en réalisant un joint entre un sol et mon mur la hauteur de mon voile ne change pas. C'est très énervant dans certaines situations d'ailleurs, je songe de plus en plus à dessiner avec des voiles "Sans contrainte" ... Mais justement si tu spécifies une hauteur à ton voile tu as effectivement un problème pour les voiles intérieurs.

Pour obtenir le sol attaché à ton voile je peux te donner quelques pistes que j'ai moi même suivi pour créer automatiquement des joints entre des éléments. Il n'y a qu'une fonction qui va changer d'ailleurs.
En suivant ce lien : http://dynamobim.org/forums/topic/automatic-join-geometry-in-revit/ tu peux trouver un post de Ben OSBORNE qui donne un code permettant de joindre des éléments. Tu as aussi une fonction qui permet de tester si des éléments sont joints : Autodesk.Revit.DB.JoinGeometryUtils.AreElementJoined(doc, elementA, elementB). En adaptant le code tu devrais pouvoir sortir un booléen qui associé avec le noeud "FilterByBoolMask" devrait récupérer uniquement les sols joints à certains voiles.

Voila je pense que ça serait un bon point de départ mais c'est juste la démarche qui me vient à l'esprit en voyant ton problème ... et je suis pas expert haha ! Mais cela me semble réalisable ! Tu auras besoin de conseils de quelqu'un qui s'y connait mieux que moi pour continuer :)
Tu peux t’inscrire sur le forum DynamoBIM et poser ta question directement la bas. Certaines personnes font des trucs assez incroyables ...
BL Benoît LECRIOUX
·
Oui c'est ce que j'ai commencé à faire mais il faut que le haut du mur corresponde au haut de la dalle. pour les murs extérieurs ça devrait couvrir la majorité des cas. Par contre comment faire avec un voile intérieur sous plancher? La hauteur du linteau comprend l'épaisseur de la dalle.
C'est pour ça que je cherchais du côté du sol mais cela semble compliqué de faire: porte=> mur hôte=> sol attaché (je bloque après la 2é étape).
NN Nathan Nivill
·
A première vue j'aurai plutôt tendance à récupérer le mur qui contient la porte avec "Element.host" de Clockwork Package puis utiliser la hauteur du mur (hauteur totale avec dalle incluse donc) et travailler à partir de ca.

Après il ne faut pas avoir dessiné les murs sur toute la hauteur du bâtiment ... :D
BL Benoît LECRIOUX
·
Merci Nathan. En combinant ta solution et la mienne, j'arrive à mes fins. Le noeud "Element.Type" semble être mieux adapté que "Get Type parameter"...

Une idée pour récupérer le niveau du sol le plus proche au-dessus de la porte pour en déduire la hauteur de linteau restant?
NN Nathan Nivill
·
Bonjour Benoît,

Mes maigres compétences en programmation ne me permettent pas de te dire pourquoi ta méthode ne marche pas.
En revanche, j'ai réussi à le faire différemment dans un de mes scripts. Voir pièce jointe.
Voir plus de commentaires
La lettre HEXABIM

Les outils qui comptent, tous les 15 jours.

Nouveautés utiles, un comparatif, un retour d'expérience. Désinscription en un clic.

Newsletter
Newsletter