jeudi 6 avril 2017
  8 réponses
  9.5K vues
  Suivre cette discussion
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 !
6 years ago
·
#5847
0
Votes
Undo
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 !
6 years ago
·
#5848
0
Votes
Undo
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 !
6 years ago
·
#5849
0
Votes
Undo
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.
6 years ago
·
#5850
0
Votes
Undo
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#.
6 years ago
·
#5851
0
Votes
Undo
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.
6 years ago
·
#5854
0
Votes
Undo
D'accord, je comprends mieux.

Merci pour ces précisions !
6 years ago
·
#5900
0
Votes
Undo
Bonjour Léo.
Comme on se retrouve !!!
Tu peux voir les cours Python sur Elephorm : http://www.elephorm.com/formation-code-python;) ;)
6 years ago
·
#5902
0
Votes
Undo
Salut Christian :)

Merci pour la piste !
Mohamed KHETTAB
updated the category from to Modélisation, simulation et visualisation — 7 months ago
There are no replies made for this post yet.