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

Finalisation objet GDL  [RÉSOLU]

Les trucs un peu plus complexes, le cœur des objets paramétriques
Mathias J
Messages : 832
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

Finalisation objet GDL

Message par Mathias J »

Bonsoir à tous,

Les objets:
Capture d'écran 2023-11-19 220640bb.png
J'ai repris le codage de deux de mes objets dédié aux PMR (un lit et un objet espaces de manoeuvre). Je compte le partager fini dans la section Telechargement du forum, mais je tombe sur 1 bug et 1 blocage pour ajouter une option.


Capture d'écran 2023-11-19 220813.png
Capture d'écran 2023-11-19 220753.png
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Archicad 25 sous windows 10

Mathias J
Messages : 832
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: Finalisation objet GDL

Message par Mathias J »

BUG de mon objet "ESPACE PMR" :

J'utilise un système avec des points chauds décalés: c'est ma "marge de dessin". Les rectangles, cercles... sont dessinés à la valeur réglementaire, mais les points chaud sont décalés d'une valeur "dim_secu" que je mets la plupart du temps à 1cm.

Quand je n'avais pas de gestion de cette marge de dessin par les OVM: pas de problème.

Mais maintenant que j'ai ajouté cette option, je me retrouve avec des "bugs" parceque mon objet ne suit pas immédiatement la nouvelle valeur "dim_secu" : il faut que je réactualise l'objet l'objet (ouvrir/fermer l'objet) pour corriger la valeur "dim_secu".

Est-ce une limitation ou un manque dans mon code?

OBJET IMA.zip
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Archicad 25 sous windows 10

Mathias J
Messages : 832
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: Finalisation objet GDL

Message par Mathias J »

Par exemple pour le cercle, j'avais codé la condition suivante:

Code : Tout sélectionner

if A > 1.5+2*dim_secu-eps AND A < 1.5+2*dim_secu+EPS  THEN 
Comme "dim_secu" n'est pas à jour, le cercle n'apparait pas car la condition n'est pas remplie
Capture d'écran 2023-11-19 221756 1.png
Capture d'écran 2023-11-19 221821 2.png
Capture d'écran 2023-11-19 221836 3.png
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Archicad 25 sous windows 10

Avatar de l’utilisateur
Pierre Fernandez
Secretaire adjoint Moderateur
Messages : 1157
Inscription : 18 nov. 2018 13:14
Localisation : Beaumont-la-Ronce
LinkedIn : www.linkedin.com/in/pierre-fernandez-a1263255/
Version d'Archicad : 24
Système d'exploitation : Windows
A remercié : 78 fois
A été remercié : 276 fois
Contact :

Re: Finalisation objet GDL

Message par Pierre Fernandez »

Bonjour
Normalement les options OVM on un effet immédiat sur les objets qui en dépendent
Mais ton script est trop compliqué et c'est peut-être ça qui cause ton décalage

tu écris :

Code : Tout sélectionner

IF forcer_marge_secu=0 THEN
	succes = LIBRARYGLOBAL ("OptionsPMRadp", "marge_secu_glob" , req_marge_secu_glob)
	marge_secu = req_marge_secu_glob	

ENDIF
Déjà, en mettant

Code : Tout sélectionner

IF forcer_marge_secu < eps THEN
tu t'évite un message "utiliser des nombre réels ..."
Ensuite au liieu de

Code : Tout sélectionner

	succes = LIBRARYGLOBAL ("OptionsPMRadp", "marge_secu_glob" , req_marge_secu_glob)
	marge_secu = req_marge_secu_glob	
Tu pourrais créer dans ta liste de paramètres la variable "marge_secu" et écrire seulement

Code : Tout sélectionner

	succes = LIBRARYGLOBAL ("OptionsPMRadp", "marge_secu_glob" , marge_secu)
Ainsi la valeur OVM sera directement injecté dans la variable et tu ne devrais plus avoir a éditer ton objet pour qu'il se mette à jour
Certaines réponses peuvent l'être mais les questions ne sont jamais idiotes dès lors qu'elles se posent 😉
Windows 10 - ArchiCAD 15 à 24
BIM Services Patrimoine Virtuel

Mathias J
Messages : 832
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: Finalisation objet GDL

Message par Mathias J »

Merci Pierre pour ton retour.

Ca ne règle pas mon problème, mais m'aide à y voir plus clair!
J'ai repris tout le code pour commenter/clarifier au maximum.

Je me demande si mon problème vient de la façon dont j'ai construit initialement mon code, et l'utilisation assez importante de GLOB_MODPAR_NAME
pour mes paramètres.

Code : Tout sélectionner

! -------- ROND DE 150------------------------------------ ! 

IF GLOB_MODPAR_NAME = "A" AND A > 1.5+2*dim_secu-eps AND A < 1.5+2*dim_secu+EPS  THEN 
	PARAMETERS B = 1.5+2*dim_secu
	PARAMETERS aff_type_espace = "Espace de manoeuvre avec demi-tour"

ENDIF
Ci joint le code qui reprends tes conseils (pour l'objet ESPACE PMR) et auquel j'ai ajouté des commentaires pour clarifier le code.
OBJET IMA.zip
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 : 4839
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é : 1005 fois

Re: Finalisation objet GDL

Message par Yves Houssier »

Salut Mathias,

Ton forcer_marge_secu est un booléen donc tu devrai plutôt l'écrire comme ceci

Code : Tout sélectionner

IF forcer_marge_secu THEN

	succes = LIBRARYGLOBAL ("OptionsPMRadp", "marge_secu_glob" , marge_secu)	
	IF marge_secu = 1 THEN succes = LIBRARYGLOBAL ("OptionsPMRadp", "dim_secu_glob" , dim_secu)
	IF marge_secu = 2 THEN dim_secu =0

	PARAMETERS dim_secu = dim_secu

ENDIF

Et dans le cas inverse pour ton script paramètre par exemple comme ceci

Code : Tout sélectionner

IF NOT(forcer_marge_secu) THEN
	HIDEPARAMETER "marge_secu"
	HIDEPARAMETER "dim_secu"
ENDIF

Et la solution de Pierre a l'air de fonctionner chez moi … seulement quand je change la valeur de sécurité dans les OVM le cercle de manœuvre se transforme en carré mais ça doit certainement venir d'un autre problème dans tes scripts
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 : 832
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: Finalisation objet GDL

Message par Mathias J »

Après relecture de mon code, et sachant que mon objet lit marche bien, ça me confirme que problème vient de l'utilisation de GLOB_MODPAR_NAME.
Je vais reprendre le code de ce côté là.
Archicad 25 sous windows 10

Avatar de l’utilisateur
Pierre Fernandez
Secretaire adjoint Moderateur
Messages : 1157
Inscription : 18 nov. 2018 13:14
Localisation : Beaumont-la-Ronce
LinkedIn : www.linkedin.com/in/pierre-fernandez-a1263255/
Version d'Archicad : 24
Système d'exploitation : Windows
A remercié : 78 fois
A été remercié : 276 fois
Contact :

Re: Finalisation objet GDL

Message par Pierre Fernandez »

En ajoutant

Code : Tout sélectionner

IF GLOB_MODPAR_NAME <> "A" THEN
	IF A < 1 THEN
		PARAMETERS A = 0.8+2*dim_secu
		A = 0.8+2*dim_secu
	ENDIF
	IF A > 1 AND A < 1.5 THEN
		PARAMETERS A = 1.2+2*dim_secu
		A = 1.2+2*dim_secu
	ENDIF
	IF A >= 1.5 THEN 
		PARAMETERS A = 1.5+2*dim_secu
		A = 1.5+2*dim_secu
	ENDIF
ENDIF
A la fin du script principal ça fonctionne à condission que dim_seco ne soit pas trop importante et ne fasse pas passer la largeur de l'autre coté de la limite
Certaines réponses peuvent l'être mais les questions ne sont jamais idiotes dès lors qu'elles se posent 😉
Windows 10 - ArchiCAD 15 à 24
BIM Services Patrimoine Virtuel

Avatar de l’utilisateur
Pierre Fernandez
Secretaire adjoint Moderateur
Messages : 1157
Inscription : 18 nov. 2018 13:14
Localisation : Beaumont-la-Ronce
LinkedIn : www.linkedin.com/in/pierre-fernandez-a1263255/
Version d'Archicad : 24
Système d'exploitation : Windows
A remercié : 78 fois
A été remercié : 276 fois
Contact :

Re: Finalisation objet GDL  [RÉSOLU]

Message par Pierre Fernandez »

en fait le problème vient de l'utilisation de VALUES

Comme l'indique le GDL Reference Guid, VALUES est une déclaration qui se place dans le script de paramètres.
Or, celui ci n'est lu que lors de l'édition d'un objet ou de la modification d'un paramètre

Etant donné que les OVM ne modifient par à proprement parlé les paramètres des objets, alors le script n'est pas lu lors de leur modification
Certaines réponses peuvent l'être mais les questions ne sont jamais idiotes dès lors qu'elles se posent 😉
Windows 10 - ArchiCAD 15 à 24
BIM Services Patrimoine Virtuel

Mathias J
Messages : 832
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: Finalisation objet GDL

Message par Mathias J »

Merci beaucoup Pierre!

J'ai repris tout mon code en utilisant VALUES et les conditions avec des valeurs fixes (comme ce que j'avais fait avec l'objet lit), et ca semble avoir réglé le problème. Je vérifierais demain puis je posterais dans les Objets à Télécharger
Archicad 25 sous windows 10

Répondre