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

Programmation Python - Par où commencer ?

KL KICHENIN Léo
6 avril 2017
11.86K
Bonjour à tous,

Je commence à m'intéresser à la programmation Python pour développer de nouvelles fonctionnalités sur Revit.

J'ai fait des recherches sur le sujet et j'ai trouvé plusieurs sites intéressants et beaucoup de ressources.

J'ai trouvé plusieurs solutions pour pouvoir créer des scripts directement dans l’environnement Revit :

- Grâce aux macros
- Dans l'environnement Dynamo
- En utilisant le module Revit Python Shell
- Et enfin grâce à PyRevit.

L'objectif de mon poste est de récolter des informations sur les différences entre ces quatre méthodes notamment sur les deux dernières que j'appréhende moins bien.

De ce que j'ai pu comprendre, il me semble que Revit Python Shell et PyRevit apportent des avantages intéressants (bibliothèques nombreuses, scripts réutilisables ...).

Si jamais quelqu'un a eu l'occasion d'utiliser l'un de ces outils, je suis preneur de tout retour d'expérience.

Aussi, si vous utilisez ou connaissez d'autres outils que ceux cités ci-dessus, je suis à l'écoute.

Je suis bien conscient qu'il va falloir que je me familiarise avec le langage Python mais avant de le faire je souhaiterais trouver l'environnement adéquat.

Voilà, merci d'avance pour votre aide !

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.
RayCAD
Plugin Revit qui automatise le placement des étiquettes sur les vues MEPF selon des règles configurées, sans recouvrement, tout en incluant des utilitaires de production de réseaux.
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...
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é.
IFC Engine
Bibliothèque logicielle pour développeurs permettant de lire, modifier et créer des fichiers IFC, incluant un noyau de géométrie pour les projets d'infrastructure et les versions récentes du standard.
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...
MasterSap
Logiciel de calcul de structures par éléments finis pour le génie civil, permettant de modéliser, vérifier et dessiner des ouvrages en béton armé, acier, bois et maçonnerie via une approche...
IfcOpenShell
Bibliothèque open source de lecture, d'écriture et de modification de maquettes IFC, ce moteur géométrique permet aux développeurs et BIM managers de traiter, convertir et analyser des données BIM.
IfcConvert
Utilitaire en ligne de commande permettant de convertir la géométrie de fichiers IFC vers de multiples formats 3D et CAO, offrant des options avancées de filtrage et de validation pour...
IFC.Reactor
SDK destiné aux développeurs pour créer des applications openBIM, cet outil permet la lecture, l'écriture, la requête et la validation de données IFC via les formats STEP, XML et JSON.
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.
FreeCAD
Application de modélisation 3D paramétrique open source dédiée à la conception technique, au BIM et à la fabrication, permettant de gérer des projets complexes via des ateliers spécialisés.
CMS IntelliCAD
Logiciel de CAO 2D/3D permettant la lecture et l'écriture native de fichiers DWG, l'import de références BIM et la génération de rendus photoréalistes par IA pour les architectes et ingénieurs.
card_1
Logiciel de CAO métier pour l’ingénierie des infrastructures linéaires, cet outil permet la modélisation 3D, la conception de routes, voies ferrées et réseaux, ainsi que la production automatique de plans.
AxisVM
Logiciel de calcul par éléments finis pour l’analyse et le dimensionnement des structures, permettant de réaliser des vérifications normatives et des simulations complexes dans un environnement unique.
Archicad ProKit
Plugin intégré aux abonnements Archicad, cet ensemble de modules de productivité facilite la documentation, la gestion de projet et les modifications tardives pour les architectes et modeleurs BIM.
Thématique
Modélisation
Statut
Standard
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.
pyRevit
Plugin pour Autodesk Revit permettant d'automatiser des tâches via des scripts Python, de gérer des déploiements personnalisés et d'organiser des outils métier au sein d'une interface dédiée.
Thématique
Automatisation
Statut
Standard

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

pyRevit
Plugin pour Autodesk Revit permettant d'automatiser des tâches via des scripts Python, de gérer...
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

KL KICHENIN Léo
·
Salut Christian :)

Merci pour la piste !
KL KICHENIN Léo
·
D'accord, je comprends mieux.

Merci pour ces précisions !
CW Cyril Waechter
·
Python est interprété, on peut travailler sur son code en direct avec son IDE favori et le lancer dans Revit comme une macro (sans avoir à redémarrer ou autre). Le site de pyRevit explique très bien comment utiliser un script et ajouter ses propres scripts.
Pour plus direct, pour découvrir et tester des choses je recommande la console de Revit Python Shell. Je recommande également d'installer revit lookup pour explorer la structure de Revit, qui je crois est utilisé pour tous les développeurs quel que soit le langage.

Je pense que le langage Visual Studio a ses avantages mais a priori je m'orienterai plutôt vers le langage Python qui me semble plus accessible pour commencer.

Visual Studio Community est juste un autre IDE. Avec Python Tools For Visual Studio on l'utilise très bien pour python aussi. Je l'ai utilisé aussi et je l'utilise toujours de temps à autres pour certaines opération mais je préfère PyCharm qui est purement orienté python et qui facilite donc le respect des conventions de nommage et autres diverses règles ou conventions relative à python.
KL KICHENIN Léo
·
Bonjour,

Je pense que le langage Visual Studio a ses avantages mais a priori je m'orienterai plutôt vers le langage Python qui me semble plus accessible pour commencer.

A voir par la suite si ça vaut le coup de passer au Visual Basic ou au C#.
JG Julien G
·
Bonjour,

Il y à aussi Visual Studio Community qui propose une interface de programmation puissante.

Je ne connais pas le Python, mais j'ai appris à développer en VB.net sur Visual Studio, et le bond par rapport à l'interface des macros intégré à REVIT est considérable.
KL KICHENIN Léo
·
Merci beaucoup pour ces réponses ! C'est beaucoup plus clair maintenant.

Ça confirme l'impression que j'avais eu.

Du coup j'ai une petite question sur PyRevit :

Est-ce que PyRevit permet de réaliser les scripts directement depuis Revit et de les tester en direct ou bien faut-il obligatoirement passer par un IDE externe à Revit ?

Je vais approfondir cette piste, merci encore !
CW Cyril Waechter
·
Bonjour,

Concernant les ressources, le sujet a déjà été abordé ici

Concernant les avantages des différents environnements :
[*] Macros :
Permet de lier une macro au projet (comme une macro excel), donc si on envoi son modèle, le script vient avec.
C'était bien autrefois quand RPS (Revit Python Shell), Dynamo et pyRevit n'existaient pas ou pour démarrer sans installer quoi que ce soit mais maintenant je trouve que c'est globalement sans grand intérêt.
[*] Dynamo :
Avantage :
Fait moins peur à certains que du code pur et il est dans certains cas plus facile que de se replonger dedans. La plupart des utilisateur de RPS/pyRevit utilisent aussi Dynamo.
Communauté active (forum Dynamo)
Messages d'erreur
Inconvénient :
La gestion des packages… j'ai souvent des problèmes avec les différentes versions des packages.
Un paquet de nodes se résume souvent en quelques lignes de codes.
Les scripts sont contenus dans le fichier Dynamo, difficile d'aller chercher un script où on a déjà utilisé une technique sans ouvrir Dynamo/Revit.
Pas possible (du moins il me semble) d'ouvrir plusieurs scripts en parallèle pour faire du copier coller.
[*] RPS :
Licence MIT
Avantage :
Console permettant de tester des choses en direct. Utile pour l'exploration, les test etc…
Inconvénient :
Le déploiement de scripts sur plusieurs postes n'est pas aussi facile qu'avec les autres solutions.
[*] pyRevit :
Licence GPL v3
Excellente solution permettant de facilement créer des boutons, interfaces etc… Des tas d'exemples disponibles. Prêt à l'emploi. Système de gestion de packages permettant la mise à jour facile des extensions. Bien documenté. Une équipe active.

Pour résumé, apprendre l'un permet facilement d'aller sur un autre donc il ne s'agit pas d'un choix définitif. Mais personnellement mon cœur penche pour pyRevit + RPS surtout depuis la version 4 de pyRevit.

Le suis passé sur les 4 outils et il n'y a que les macros que je n'utilise plus. Mon dernier outil en date est prévu pour pyRevit : http://pythoncvc.net/?p=255

Pour ce qui est de l'IDE, j'en ai testé un paquet et je me suis mis récemment sur PyCharm (Community édition) sur recommandation du créateur de pyRevit. Je ne regrette pas, il est tout simplement excellent !

Bon courage !
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