Archi-Cadlinkeuses, Archi-Cadlinkeurs,

Vous êtes les bienvenus.

Ce forum, ouvert depuis le mois de novembre 2018, a pour objectif, vocation et ambition de répondre à toutes vos interrogations sur l'outil logiciel ArchiCAD®, développé par GRAPHISOFT© (au delà des canaux officiels type forum éditeur, distributeurs, revendeurs... et des "baratins commerciaux" ! ;-)).
Ce lieu souhaite également créer du lien entre ses utilisateurs.

Il s'adresse à tous, du débutant a l'expert, et repose exclusivement sur le bénévolat collaboratif et participatif.

Pour éviter toutes pertes de cette future base de connaissances et la pérenniser, ce forum est géré, administré, développé et financé par une association loi 1901 à but non lucratif. Vous pouvez sur demande adhérer a l'association comme membre actif, moyennent une cotisation faible et attractive ( de 1 € a votre bon coeur ! )

Cet espace auto financé est sans contrainte d'intérêts commerciaux tiers. Il est donc indépendant et libre.

Il est entièrement dédié aux utilisateurs (dessinateur-projeteur, technicien, maitre d’œuvre, collaborateur d'architecte, architecte, ingénieur, etc...).
Il s'adresse donc aux acteurs "sur le terrain", qui conçoivent, produisent, réalisent, diffusent, des publications numériques et/ou "papier", avec ce logiciel.

Les accès au site et à ses différentes rubriques sont entièrement libres et gratuits. Les pièces téléchargeables et le droit à poster exigent l'inscription.
Merci de remplir IMPERATIVEMENT dans les champs de votre profil:
1/ votre numéro de version d'ArchiCAD® (de la 4.5 à la 26 !)
2/ votre OS (Mac ou Windows)
3/ votre localisation

C'est uniquement fait pour faciliter la pertinence des réponses et les échanges.

La rubrique "Je me présente" vous permettra d'accéder à de nouveaux salons permettant le téléchargement d'objets mis à disposition et de quelques autres goodies à venir. Elle vous permet également de vous géolocaliser sur une carte interactive, un lien vous est fourni. Vous avez peut être une ou un collègue près de là où vous exercez !

Les membres du bureau 2023 sont :

David, Felipe, Maël, Nicolas, Pierre, Sam, Simon, Yves

[PYTHON] [ARCHICAD 25] Script SHAB V2

Le process, les chartes, les trucs a vraiment éviter, les IFC, la coordination et les revues de projet...
Mathias J
Messages : 834
Inscription : 20 nov. 2018 23:36
Localisation : Paris
Version d'Archicad : 25
Système d'exploitation : Windows
A remercié : 280 fois
A été remercié : 249 fois

[PYTHON] [ARCHICAD 25] Script SHAB V2

Message par Mathias J »

Salut à tous,
INTRO
Ce script a pour objectif d'afficher en plan la surface totale de l'appartement.
Un clic pour mettre à jour l'ensemble des surfaces des appartements du projet.

HISTORIQUE
J'avais partagé le script de POCO il ya quelques temps pour permettre d'afficher un total de SHAB en plan: viewtopic.php?f=20&t=2579 .

Le script marchait mais avait l’inconvénient :
-de bugger rapidement si il n'était pas utilisé exactement comme prévu
-de nécessiter en plus des zones de SHAB, une zone globale unique représentant l'appartement. C'est cette zone d'appartement qui prenait le total de SHAB et qui l'affichait.

Pour rentrer dans le détail, ce script faisait l'addition des surfaces de toutes les zones de SHAB d'un certain numéro de zone et rentrait le résultat dans une propriété de la zone (unique) d'appartement ayant le même numéro de zone.

Je me suis (très rapidement) formé à Python pour modifier ce script et profiter de la nouveauté de la mise à jour de la 25, à savoir la possibilité de mettre des étiquettes sur les zones.


LE SCRIPT

Le nouveau script est plus simple.
1/ Il prends toutes les zones ayant le même numéro de zone
2/ Calcule l'addition des surfaces mesurées des zones de ce numéro
3/ Entre le total de l'addition dans une propriété pour chacune des zones du numéro correspondant.

Pour récupérer le total en plan, il suffit d'utiliser une étiquette de Zone associée à n'importe laquelle des pièces formant la SHAB et d'afficher la propriété correspondant au"Total de Shab".
NumeroDeZone.jpg
Propriete Total.jpg
Pour paramétrer le script, tout a été rassemblé au début pour une modification plus aisée.
Parametrage SCRIPT SHAB.jpg
Dites moi ce que vous en pensez!
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Archicad 25 sous windows 10

Avatar de l’utilisateur
Yves Houssier
Admin Moderateur
Messages : 4849
Inscription : 14 nov. 2018 17:17
Localisation : Seraing - Belgique
Version d'Archicad : ArchiCAD 23
Système d'exploitation : MacOs 10.13
A remercié : 289 fois
A été remercié : 1008 fois

Re: [PYTHON] [ARCHICAD 25] Script SHAB V2

Message par Yves Houssier »

Salut Mathias,

Je viens de tester ton script en archicad 24 (pas avec une étiquette évidement) juste en choisissant d'afficher la propriété sur une seule des zones, et ça fonctionne très bien.

Pour le faire fonctionné en AC 24 j'ai masqué la ligne archicad 25
#from archicad.releases.ac25.b3000types import ElementPropertyValue


Petit bémol il calcul les valeurs exactes et pas les valeur affichées :eh:
(Comme archicad l'a fait pendant des années…)

Avec deux décimales 2 pièces de 20,67 donneront un total de 41,34
Avec 1 seule décimale affichée ça devrait donner 2 * 20,7 = 41,40 mais le résultat du script sera 41,34

Illustration en image
Capture d’écran SHAB.png
Je sais pas si c'est possible avec le script python de régler ce problème de calcul.


Petit question que je me pose.
On nous demande de plus en plus souvent le total des surfaces des pièces de vie (Séjour, cuisine, chambres, … mais pas Hall,Wc, Sdb, buanderie, …), pense tu qu'il y aurait moyen de faire un script qui prendrait en compte un double tri (si type de pièces = "Pièce de vie" alors surface mesurée sinon surface = 0.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
ArchiCad depuis la 3.43 (1990) à la version 24. Projet en cours sur la 21 est la 23.
Mac Os 10.12 à 10.13

Mathias J
Messages : 834
Inscription : 20 nov. 2018 23:36
Localisation : Paris
Version d'Archicad : 25
Système d'exploitation : Windows
A remercié : 280 fois
A été remercié : 249 fois

Re: [PYTHON] [ARCHICAD 25] Script SHAB V2

Message par Mathias J »

Yves Houssier a écrit :
03 oct. 2022 09:32
Petit bémol il calcul les valeurs exactes et pas les valeur affichées :eh:
(Comme archicad l'a fait pendant des années…)

Avec deux décimales 2 pièces de 20,67 donneront un total de 41,34
Avec 1 seule décimale affichée ça devrait donner 2 * 20,7 = 41,40 mais le résultat du script sera 41,34

Je sais pas si c'est possible avec le script python de régler ce problème de calcul.


Petit question que je me pose.
On nous demande de plus en plus souvent le total des surfaces des pièces de vie (Séjour, cuisine, chambres, … mais pas Hall,Wc, Sdb, buanderie, …), pense tu qu'il y aurait moyen de faire un script qui prendrait en compte un double tri (si type de pièces = "Pièce de vie" alors surface mesurée sinon surface = 0.
Pour l'affichage du total des valeurs affichées, il doit surement y avoir deux méthodes:
-Méthode "rapide" : je dois pouvoir additionner facilement une propriété (par exemple nommée surface pièce) plutôt que la surface mesurée.
-Méthode nécessitant un peu plus de recherche pour moi: gérer directement dans python les arrondis. Mais j'ai impression que Python est fait pour çà.

Je m'y mets dès que je peux et je modifie le script!

Yves Houssier a écrit :
03 oct. 2022 09:32
On nous demande de plus en plus souvent le total des surfaces des pièces de vie (Séjour, cuisine, chambres, … mais pas Hall,Wc, Sdb, buanderie, …), pense tu qu'il y aurait moyen de faire un script qui prendrait en compte un double tri (si type de pièces = "Pièce de vie" alors surface mesurée sinon surface = 0.
La modification du script pour ne pas compter certaines zones ne me semble pas problématique. Je vois trois possibilités:
-Utiliser des calques différents avec discrimination par calque (déjà intégré dans le script)
-Utiliser une sélection avec discrimination par propriété ( booléen ou liste déroulante...) : probablement pas trop compliqué
-Utiliser comme tu l'indique une discrimination par nom. Ca me semble faisable mais plus spécifique à un process particulier et source d'erreur dès que tu sors des noms habituels.
Archicad 25 sous windows 10

Avatar de l’utilisateur
Yves Houssier
Admin Moderateur
Messages : 4849
Inscription : 14 nov. 2018 17:17
Localisation : Seraing - Belgique
Version d'Archicad : ArchiCAD 23
Système d'exploitation : MacOs 10.13
A remercié : 289 fois
A été remercié : 1008 fois

Re: [PYTHON] [ARCHICAD 25] Script SHAB V2

Message par Yves Houssier »

Merci Mathias,
Un booléen ou une liste ferait bien l'affaire ou peut-être encore mieux le code de catégorie
ArchiCad depuis la 3.43 (1990) à la version 24. Projet en cours sur la 21 est la 23.
Mac Os 10.12 à 10.13

Avatar de l’utilisateur
David
Admin Tresorier adjoint
Messages : 659
Inscription : 18 nov. 2018 13:14
Localisation : Lyon
Version d'Archicad : Ca dépend...
Système d'exploitation : Windows 10
A remercié : 45 fois
A été remercié : 117 fois

Re: [PYTHON] [ARCHICAD 25] Script SHAB V2

Message par David »

Yves Houssier a écrit :
03 oct. 2022 09:32
Salut Mathias,

Je viens de tester ton script en archicad 24 (pas avec une étiquette évidement) juste en choisissant d'afficher la propriété sur une seule des zones, et ça fonctionne très bien.

Pour le faire fonctionné en AC 24 j'ai masqué la ligne archicad 25
#from archicad.releases.ac25.b3000types import ElementPropertyValue


Petit bémol il calcul les valeurs exactes et pas les valeur affichées :eh:
(Comme archicad l'a fait pendant des années…)

Avec deux décimales 2 pièces de 20,67 donneront un total de 41,34
Avec 1 seule décimale affichée ça devrait donner 2 * 20,7 = 41,40 mais le résultat du script sera 41,34

Illustration en image
Capture d’écran SHAB.png

Je sais pas si c'est possible avec le script python de régler ce problème de calcul.


Petit question que je me pose.
On nous demande de plus en plus souvent le total des surfaces des pièces de vie (Séjour, cuisine, chambres, … mais pas Hall,Wc, Sdb, buanderie, …), pense tu qu'il y aurait moyen de faire un script qui prendrait en compte un double tri (si type de pièces = "Pièce de vie" alors surface mesurée sinon surface = 0.
Hello,

Pour l'arrondi, un "round(Surf, NbDecimales)" fera l'affaire ;)
Par contre, soit on "fige" le réglage (NbDecimales), soit on fait une proposition à l'utilisateur (par ex.:0 , 1 ou 2 décimales) via une variable. Attention à bien faire la manip sur les valeurs additionnées et non sur le résultat!

Pour les autres questions, on peut récupérer toutes les propriétés que l'on veut et les manipuler via des listes et des dictionnaires... ;)

Il y a également la notion de surface "intérieure" ou "extérieure" car on ne veut pas des jardins, balcon, terrasses, etc., ne pas prendre les zones "sans numéros", en fonction de certains calques et pas d'autres, les états de rénovation, les niveaux, etc. :geek:

David
LYON | BIM lover, Archicad addicted, OpenBIM forever
W10 | Since AC5 | AC24/AC26 en production... [AC27 en test...]
[ "Ordre et méthode" ]

Mathias J
Messages : 834
Inscription : 20 nov. 2018 23:36
Localisation : Paris
Version d'Archicad : 25
Système d'exploitation : Windows
A remercié : 280 fois
A été remercié : 249 fois

Re: [PYTHON] [ARCHICAD 25] Script SHAB V2

Message par Mathias J »

David a écrit :
03 oct. 2022 15:04
Par contre, soit on "fige" le réglage (NbDecimales), soit on fait une proposition à l'utilisateur (par ex.:0 , 1 ou 2 décimales) via une variable. Attention à bien faire la manip sur les valeurs additionnées et non sur le résultat!

David
Comment fais tu pour faire la proposition à l'utilisateur?
J'ai pas encore atteint le niveau pour appeler un popup^^.
Archicad 25 sous windows 10

Avatar de l’utilisateur
David
Admin Tresorier adjoint
Messages : 659
Inscription : 18 nov. 2018 13:14
Localisation : Lyon
Version d'Archicad : Ca dépend...
Système d'exploitation : Windows 10
A remercié : 45 fois
A été remercié : 117 fois

Re: [PYTHON] [ARCHICAD 25] Script SHAB V2

Message par David »

Mathias J a écrit :
03 oct. 2022 15:17
David a écrit :
03 oct. 2022 15:04
Par contre, soit on "fige" le réglage (NbDecimales), soit on fait une proposition à l'utilisateur (par ex.:0 , 1 ou 2 décimales) via une variable. Attention à bien faire la manip sur les valeurs additionnées et non sur le résultat!

David
Comment fais tu pour faire la proposition à l'utilisateur?
J'ai pas encore atteint le niveau pour appeler un popup^^.
Là c'est plus touchy...
Faut te lancer dans tkinter ;)
LYON | BIM lover, Archicad addicted, OpenBIM forever
W10 | Since AC5 | AC24/AC26 en production... [AC27 en test...]
[ "Ordre et méthode" ]

Mathias J
Messages : 834
Inscription : 20 nov. 2018 23:36
Localisation : Paris
Version d'Archicad : 25
Système d'exploitation : Windows
A remercié : 280 fois
A été remercié : 249 fois

Re: [PYTHON] [ARCHICAD 25] Script SHAB V2

Message par Mathias J »

C'est bien ce que je me disais^^.

J'ai encore beaucoup à apprendre!
Archicad 25 sous windows 10

Avatar de l’utilisateur
David
Admin Tresorier adjoint
Messages : 659
Inscription : 18 nov. 2018 13:14
Localisation : Lyon
Version d'Archicad : Ca dépend...
Système d'exploitation : Windows 10
A remercié : 45 fois
A été remercié : 117 fois

Re: [PYTHON] [ARCHICAD 25] Script SHAB V2

Message par David »

C'est loin d'être insurmontable mais fais attention aux variables locales... ;)
LYON | BIM lover, Archicad addicted, OpenBIM forever
W10 | Since AC5 | AC24/AC26 en production... [AC27 en test...]
[ "Ordre et méthode" ]

Mathias J
Messages : 834
Inscription : 20 nov. 2018 23:36
Localisation : Paris
Version d'Archicad : 25
Système d'exploitation : Windows
A remercié : 280 fois
A été remercié : 249 fois

Re: [PYTHON] [ARCHICAD 25] Script SHAB V2

Message par Mathias J »

Bonjour à tous.

j'ai repris le script pour gérer la question des arrondis comme suggéré par Yves. Il est paramétré de base sur 2 chiffres après la virgule.
J'en ai profité pour le simplifier (aucun changement à l'usage, c'est "sous le capot") si quelqu'un veut le reprendre.
Je me renseigne sur le critère de sélection supplémentaire, c'est un peu plus compliqué que je prévoyais si on utilise une liste d'option. Je vous tiens au courant.

NB: Pour ceux qui seraient interessé mais n'osent pas l'installer, c'est facile et bien expliqué ici: https://docs.archicad.fr/contenus-bim/scripts-python-2/


CI dessous la partie a modifier selon votre template:
Capture d’écran 2022-10-18 à 13.51.51.png
Le script mis à jour.
SCRIPT_SHAB_ARRONDIS_IMA_V3.py.zip
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Archicad 25 sous windows 10

Répondre