ARCHICAD: REVEALING GDL: Programmation Pour Les Défis Uniques De L'architecte

ARCHICAD: REVEALING GDL: Programmation Pour Les Défis Uniques De L'architecte
ARCHICAD: REVEALING GDL: Programmation Pour Les Défis Uniques De L'architecte

Vidéo: ARCHICAD: REVEALING GDL: Programmation Pour Les Défis Uniques De L'architecte

Vidéo: ARCHICAD: REVEALING GDL: Programmation Pour Les Défis Uniques De L'architecte
Vidéo: ARCHICAD _ QUANTITATIF DE MURS EXTERIEURES ET MURS INTERIEURES 2024, Avril
Anonim

Ce matériel d'expert continue la série d'articles "ARCHICAD: Redécouverte", qui a commencé en décembre 2016 avec un article de Vladimir Savitsky "Création de structures et extraction de dessins d'exécution à partir d'un modèle", puis s'est poursuivie avec les publications de Svetlana Kravchenko "ARCHICAD: Redécouvrir. Visualisation - nouvelles opportunités pour un architecte "et Alexander Anishchenko" TRAVAIL D'ÉQUIPE: travail d'équipe efficace étape par étape ". Le cycle est conçu pour aider les utilisateurs à libérer le plein potentiel d'ARCHICAD®… Nous avons demandé aux architectes de partager leur expérience personnelle de l'utilisation du programme en utilisant des approches non standard, des fonctions peu étudiées et de nouvelles fonctionnalités dont de nombreux utilisateurs ne sont peut-être même pas conscients. En tant que développeurs de l'application ARCHICAD, nous sommes convaincus que seule une connaissance approfondie du produit peut révéler toute sa valeur et influencer de manière décisive les résultats, la rapidité et la qualité du travail du concepteur. Préférez-vous également les "chemins non lus"? Avez-vous de l'expérience dans l'utilisation d'approches non standard en travaillant avec ARCHICAD, n'utilisez pas régulièrement les fonctionnalités les plus connues de l'application? Nous serons heureux d'inviter de nouveaux auteurs à coopérer: [email protected]. Svetlana Kravchenko, une architecte en exercice, rapporte:

zoom
zoom

Beaucoup d'entre vous ont sûrement entendu parler de GDL dans ARCHICAD, mais tout le monde ne sait pas encore comment l'utiliser dans le travail. Compte tenu de l'incroyable utilité de cette fonctionnalité, ainsi que des nombreuses questions après mon premier webinaire sur ce sujet, j'ai décidé d'entrer plus en détail sur la façon dont même la moindre connaissance de celle-ci peut beaucoup aider dans le travail quotidien de un architecte.

Commençons par les bases GDL (Geometric Description Language) est un langage de programmation de type BASIC conçu pour fonctionner dans l'environnement ARCHICAD. Il décrit les corps solides 3D (tels que les portes, les fenêtres, les meubles) et les symboles 2D dans la fenêtre du plan d'étage. Ces objets sont appelés Fonctionnalités de bibliothèque.

Pour ceux qui connaissent au moins un peu la programmation, la maîtrise de ce langage ne sera pas difficile. Cependant, avec une volonté suffisante, l'étude du GDL sera tout à fait à la portée d'une personne éloignée de cet environnement. Tout architecte a étudié la géométrie et la géométrie descriptive à son époque, a une excellente pensée volumétrique, et c'est déjà la moitié du succès. Vous n'avez pas besoin d'essayer immédiatement d'écrire des objets complexes, cela vaut la peine de commencer par les formes et formes géométriques de base; beaucoup d'informations peuvent être glanées en examinant les scripts d'autres éléments de la bibliothèque. Eh bien, la principale source d'informations est le manuel de référence GDL, accessible via le menu Aide d'ARCHICAD lui-même. Alors, pourquoi un architecte peut-il bénéficier de la connaissance de GDL? Par exemple, contrairement à Grasshopper, avec lequel vous pouvez créer des structures complexes, GDL est tout simplement indispensable pour écrire divers marqueurs et légendes, ainsi que pour créer des composants spéciaux pour d'autres fonctionnalités ou outils de la bibliothèque. L'une de mes premières applications de GDL dans mon travail a été la création d'un vantail de porte spécial qui, une fois redimensionné, ne s'est pas mis à l'échelle dans toutes les directions, mais a seulement changé les dimensions du panneau. L'épaisseur du cadre bouclé et la largeur du harnais sont restées inchangées. De plus, les architectes souhaitent très souvent ajouter des fonctions simples aux objets existants des bibliothèques standard - et c'est la principale raison pour laquelle ils commencent à se plonger dans GDL. Bien entendu, la connaissance de GDL n'est pas vitale, et bon nombre de ces tâches peuvent être accomplies avec des outils standard. Par exemple, vous pouvez créer des éléments de remplissage avec des dalles et les enregistrer en tant que vantail de porte spécial. Si vous n'avez que quelques-unes de ces portes non standard, ce sera encore plus rapide. Mais si votre projet comporte de nombreuses portes similaires de différentes tailles et que leur largeur change au cours du travail, l'écriture d'un panneau spécial dans GDL accélérera et simplifiera considérablement le travail. La description géométrique implique que n'importe laquelle des formes possibles peut être écrite dans le texte selon des dimensions ou des coordonnées. Pour un script 3D, il existe un bloc de commandes pour les formes spatiales de base, telles que: - BLOQUER et BRIQUE - un parallélépipède construit en trois dimensions avec l'origine au point 0 du repère BLOC a, b, c BRIQUE a, b, c

zoom
zoom

- CYLINDRE - cylindre le long de l'axe Z, avec hauteur h et rayon r CYLIND h, r

- SPHÈRE - sphère centrée à l'origine et au rayon r SPHÈRE r

zoom
zoom

Une ellipse et un cône sont décrits de manière similaire. Le bloc de chiffres suivant est déjà plus compliqué - il s'agit de divers prismes. Ils sont décrits par un ensemble de coordonnées de points. Le prisme le plus simple est déterminé par le nombre de points (n), la hauteur (h) et la liste des coordonnées de tous les points dans l'ordre. PRISME n, h, x1, y1, … xn, yn

Il existe de nombreuses variétés de prisme. La vue suivante, PRISME_, vous permet d'indiquer des codes d'état aux coordonnées des points, qui déterminent la visibilité des faces et des arêtes, et vous permet également de créer des prismes courbes et des prismes avec des trous (voir la section Codes d'état dans le livre de référence). Un autre type, BPRISM_, crée un prisme torsadé autour de l'axe Y. FPRISM_ construit un prisme avec un chanfrein ou un congé sur le côté supérieur.

zoom
zoom

Il existe plusieurs commandes qui décrivent des formes basées sur des polylignes plus complexes: EXTRUDE, PYRAMIDE, PIVOT, RULED, BALAYAGE, TUBE, COONS, MASSE. Leur description avec des exemples peut être trouvée dans la référence. Pour un script 2D, les formes sont décrites par d'autres commandes: ligne, cercle, rectangle, polyligne, spline. Mais vous pouvez également enregistrer une commande pour créer une projection à partir d'un script 3D.

La création de formes 2D ou 3D n'est qu'une partie des fonctionnalités de GDL. Si vous avez juste besoin d'une table, alors il est plus facile de la construire avec les outils d'ARCHICAD lui-même. Un objet est écrit dans le cas où une sorte de paramétrisme est nécessaire: la possibilité de sélectionner différents types de pieds de table, le nombre de pieds, redimensionner la table tout en conservant les dimensions restantes, calculer le bois pour sa fabrication, son poids et son coût. L'objet peut ne contenir aucune géométrie, mais uniquement effectuer des calculs. Pour cela, des clauses de contrôle (opérateurs de contrôle) sont également utilisées, telles que des boucles, des instructions conditionnelles, faisant référence à un endroit spécifique du code (sous-programme). Il est préférable de se familiariser avec les cycles et les conditions au tout début - ils sont souvent utilisés. Ainsi, tous les exemples ci-dessous ont des instructions conditionnelles. EXEMPLE # 1 - rotation d'objet Les concepteurs veulent souvent rendre un objet orientable. En utilisant cet exemple simple, nous examinerons la structure de l'élément de bibliothèque, ainsi que les fenêtres principales de l'éditeur d'objets GDL. Pour ouvrir un objet situé dans l'espace projet (si le développeur n'y a pas mis de mot de passe), vous devez le sélectionner et appuyer sur la combinaison de touches Ctrl + Maj + O. Une autre façon consiste à utiliser le menu Fichier> Bibliothèques et objets> Ouvrir un objet. Si à ce moment aucun objet n'a été sélectionné, une fenêtre de sélection d'un objet s'ouvrira. Ajoutons des paramètres de rotation, par exemple, à une grille à persiennes (Fig. 1).

zoom
zoom

Nous avons donc ouvert la fenêtre de l'éditeur d'objets GDL (Fig. 2). En haut à gauche, il y a une fenêtre pour visualiser différentes vues, comme dans la fenêtre habituelle des paramètres d'objet; même à gauche se trouvent des boutons pour choisir une vue - plan, élévation, fenêtre 3D et aperçu. Vous trouverez ci-dessous des boutons pour ouvrir les tables de paramètres, les listes de données et les scripts. Les scripts peuvent être ouverts de deux manières: cliquez sur le bouton avec le nom du script - ouvrez dans la même fenêtre, cliquez sur le bouton à droite avec l'icône de la fenêtre - le script s'ouvrira dans une fenêtre séparée. Cela peut être utile pour voir différents scripts en même temps (Figure 3).

zoom
zoom

En haut de la fenêtre de n'importe quel script, il y a un bouton Vérifier très nécessaire: lorsque vous cliquez dessus, l'éditeur vous demandera s'il y a des erreurs dans le script. Le message contiendra la raison de l'erreur et le numéro de ligne où l'erreur a été trouvée. Dans la section "Détails", vous pouvez sélectionner un sous-type d'objet: tablier de porte personnalisé, poignée de porte, dormant de mur-rideau, etc. Ainsi, des objets spéciaux (stylo, toile, cadre) apparaîtront dans la fenêtre correspondante pour sélectionner ces éléments. Lorsqu'un type 2D est sélectionné, l'objet n'aura pas de fenêtre pour la géométrie 3D. Là, vous pouvez également sélectionner des types pour différents marqueurs - un nœud, des sections, des légendes de leader, des zones; ils apparaîtront également dans leurs outils respectifs. Dans cette section, vous pouvez remplir une description de l'objet et sélectionner un mot de passe. En outre - "Paramètres", où toutes les données utilisées dans cet objet et qui peuvent être modifiées pendant le travail sur le projet sont présentées sous forme de tableau. Ici, nous devons ajouter des paramètres pour les virages, que nous utiliserons plus tard.

zoom
zoom

Appuyez sur le bouton Nouveau situé au-dessus du tableau (Fig. 4). Une nouvelle ligne apparaîtra dans laquelle vous devez remplir les colonnes. La première de ces colonnes est Variable. Ici, nous écrivons le nom de la variable, qui sera utilisée dans les scripts, en latin et sans espaces. Vous devez le nommer de manière à ce qu'il soit facile à retenir et en même temps, il soit facile de comprendre de quoi cette variable est responsable. Dans notre cas, nous devons créer deux variables pour la valeur des angles de rotation le long des axes X et Y (l'objet peut de toute façon pivoter autour de l'axe Z directement dans le plan). J'ai décidé de les nommer angle_x et angle_y. Dans la colonne suivante, vous devez sélectionner le type de données. Les choix sont présentés dans le tableau 1.

zoom
zoom

Les deux derniers types ne sont pas utilisés dans la construction de l'objet, mais sont nécessaires pour une plus grande clarté et ordre de la liste dans la fenêtre des paramètres de l'objet. Nous avons besoin d'un coin - c'est la deuxième icône du tableau. La troisième colonne est Nom. Ici, vous pouvez écrire sans règles dans n'importe quelle langue ce que nous voulons exactement voir plus tard dans la fenêtre des paramètres d'objet. Et la dernière colonne est Value. Vous pouvez maintenant laisser 0 ici: cette valeur change à tout moment à la fois dans le script et dans les paramètres de l'objet lui-même. La figure 2 montre à quoi ressemblent les deux nouvelles options dans la fenêtre de l'éditeur d'objets GDL. 5. Utilisez les flèches au début de la ligne pour déplacer la ligne vers un emplacement approprié.

zoom
zoom

Ensuite, vous devez enregistrer l'objet sous un nouveau nom, car la bibliothèque standard est codée en dur dans le conteneur et vous ne pouvez pas écraser les objets qu'elle contient. La fenêtre des paramètres d'objet ressemblera maintenant à ceci (Fig. 6).

zoom
zoom

Il existe deux nouveaux paramètres dont la valeur peut être modifiée à tout moment. Mais maintenant, rien ne se passera, car aucune commande n'a encore été écrite en les utilisant. Vous devez maintenant ouvrir la fenêtre de script 3D. Voici une description complète de la façon de construire un modèle 3D basé sur les paramètres donnés. De plus, diverses macros peuvent être imbriquées dans l'objet. Avant toutes les constructions, vous devez faire pivoter le système de coordonnées dans lequel l'objet sera construit. Ici, il est important de comprendre la logique suivante: toutes les rotations, tous les mouvements et toutes les mises à l'échelle se produisent différemment lorsque vous travaillez dans ARCHICAD lui-même. Nous ne prenons pas un élément et le faisons pivoter, mais faisons pivoter le système de coordonnées global (après l'avoir changé, il devient local) de face construire un objet. Déplacer (commande ADD), Rotation (ROT), Echelle (MUL) sont des commandes de transformation du système de coordonnées. D'autres transformations peuvent être supprimées dans le script une par une, plusieurs à la fois ou toutes supprimées à la fois. Le livre de référence décrit tout cela de manière suffisamment détaillée et avec des exemples. Un exemple de déplacement d'un système de coordonnées dans l'espace 3D le long de trois axes à la fois est illustré à la Fig. 7. AJOUTER a, b, c

zoom
zoom

Ainsi, avant toutes les constructions, nous faisons pivoter le système de coordonnées, d'abord le long de l'un, puis le long de l'autre axe. La rotation le long de l'axe X est effectuée par la commande ROTX alphax, où alphax est l'angle de rotation antihoraire; au lieu d'alphax, vous devez entrer une variable créée précédemment. La rotation le long de l'axe Y s'effectue de la même manière (Fig. 8).

zoom
zoom

Vous pouvez maintenant définir différents angles de rotation - et les modifications du modèle 3D auront lieu dans la fenêtre située en haut à gauche (Fig. 9).

zoom
zoom

Vous pouvez maintenant définir différents angles de rotation - et les modifications du modèle 3D auront lieu dans la fenêtre située en haut à gauche (Fig. 9). Mais rien ne se passe encore en 2D. Dans un script 2D, un objet est construit avec des lignes et des polylignes séparées, de sorte que le dessin d'un objet en plan est plusieurs fois plus rapide. Sur un site, cela est imperceptible, mais s'il y a des centaines de grilles de ce type dans le projet, le freinage sera important. Vous pouvez calculer les coordonnées des points de ces lignes et les tracer comme elles le sembleraient dans la projection de l'objet pivoté, mais ce n'est pas très simple et pas très rapide. Dans ce treillis, je propose la solution suivante: si les angles en X ou Y ne sont pas égaux à zéro, alors l'objet dans le script 2D, c'est-à-dire pour le plan, sera rendu comme une projection du modèle 3D, et autrement à l'ancienne. La projection du modèle pour un script 2D est construite par la commande PROJECT2 projection_code, angle, method. Vous pouvez lire ce que signifie projection_code, angle, méthode dans le livre de référence, mais nous nous familiariserons avec la commande la plus importante de la section des instructions de contrôle IF - THEN - ELSE - ENDIF. Ce sont des instructions conditionnelles qui vous aideront à construire la clause conditionnelle du paragraphe précédent. En figue. 10 J'ai mis en évidence les commandes ajoutées dans le script 2D et ajouté «translation» en rouge à droite.

zoom
zoom

Il ne vous reste plus qu'à enregistrer l'objet et vous pouvez l'utiliser (Fig. 11). L'avantage de cette méthode par rapport à la conversion en morphing est que l'objet reste paramétrique, il peut être lu dans les spécifications, vous pouvez y modifier les dimensions des lattes, la taille du cadre et tout ce qui était dans l'objet d'origine.

zoom
zoom

Donc, en détail, à l'aide de cet exemple, nous avons examiné les principales fenêtres et scripts de l'éditeur d'objets GDL. Si l'objet que vous avez choisi pour la rotation a des paramètres non pas sous forme de liste, comme dans ce treillis, mais sous forme d'images et de diagrammes, cela signifie que le développeur a également écrit une interface graphique. Le plus souvent, la liste standard avec les paramètres est masquée, comme sur la Fig. 12: Il n'y a pas de section "Tous les paramètres" dans la liste déroulante des pages de paramètres.

zoom
zoom

Dans ce cas, vous devez aller dans le script des paramètres et trouver la commande qui masque tous les paramètres (Fig. 13). Ce script décrit toutes les actions qui affectent les paramètres: - désignation d'options ou de plages de valeurs possibles (VALUES); - tous les calculs dont le résultat est affecté au paramètre (PARAMÈTRES); - masquage ou verrouillage des paramètres (HIDEPARAMETER, LOCK).

zoom
zoom

La ligne HIDEPARAMETERS ALL peut être simplement supprimée ou en mettant un "!" Au début de la ligne, rendez-la illisible (selon la syntaxe GDL, une ligne commençant par un point d'exclamation est considérée comme un commentaire. De plus, j'écrirai des descriptions et traductions dans les captures d'écran après le signe "!"). Après cela, la ligne "Tous les paramètres" apparaîtra dans la liste des pages de paramètres, et en la sélectionnant, vous verrez une liste standard avec des paramètres, parmi lesquels il y aura de nouvelles lignes pour la rotation. EXEMPLE # 2 - texte sur un symbole Je prends l'exemple suivant du projet actuel. Lorsque vous travaillez avec le plan d'un immeuble résidentiel à plusieurs appartements, il était nécessaire de mettre la lettre «K» sur les unités extérieures des climatiseurs - et de sorte qu'il soit toujours situé verticalement. Bien sûr, la lettre aurait pu simplement être ajoutée par-dessus avec du texte ou un texte d'inscription externe, mais ensuite, lorsque le climatiseur a été mis en marche, le texte aurait également dû être déplacé. Pour commencer, j'ai ajouté quatre nouveaux paramètres (Figure 14):

zoom
zoom

1. Afficher le texte: le type de paramètre est une valeur booléenne, ce qui implique deux valeurs possibles: 0 (non) et 1 (oui). Ainsi, le texte peut être activé ou désactivé.

2. Texte spécial: type de paramètre - texte. Vous permet d'écrire n'importe quel texte dans le symbole (j'ai l'intention d'utiliser une lettre pour qu'elle rentre dans le rectangle du bloc du climatiseur).

3. Police: tapez - texte. Veuillez noter que certains types d'écriture de cette variable vous permettent de sélectionner des valeurs de police dans la colonne dans la liste de celles installées sur l'ordinateur. "Fonttype" appelle cette liste automatiquement, mais si j'écris "typefont" ou simplement "font", alors je dois écrire le nom de la police manuellement. J'ai remarqué ce moment par hasard dans l'un des objets standards.

4. Stylo texte: tapez - stylo. Eh bien, tout est clair ici.

Regardons maintenant les icônes sur lesquelles j'ai cliqué au début des lignes. La première ligne a une icône enfoncée

Image
Image

ce qui signifie gras - gras. Autrement dit, cette ligne dans la fenêtre des paramètres d'objet sera en gras. Les trois autres ont un pictogramme

Image
Image

… Cela signifie que ces lignes seront imbriquées dans la liste déroulante sous la première ligne. En figue. 15 est une capture d'écran illustrant son apparence dans les paramètres de l'objet. Pour commencer, j'ai ajouté quatre nouveaux paramètres (Figure 15):

Рис. 15. Окно Параметров Объекта
Рис. 15. Окно Параметров Объекта
zoom
zoom

Et sur la fig. 16 - ce que j'ai ajouté dans un script 2D (traditionnellement avec traduction et commentaires).

zoom
zoom

Figure. 16. Ajout de lignes dans un script 2D Dans la capture d'écran suivante (Fig. 17), pour plus de clarté, j'ai teinté différents types de mots / commandes / variables.

zoom
zoom

L'objet est prêt (fig. 18).

zoom
zoom

Et si je n’écrivais pas de lignes avec rotation et mise à l’échelle, alors l’objet ressemblerait à la fig. 19.

zoom
zoom

EXEMPLE # 3 - détails Pour simplifier le travail sur un projet, lors de l'écriture d'un objet, vous pouvez ajouter un paramètre de texte avec un choix de plusieurs options de détail (simple, moyen, détaillé). Et dans le script 3D, lors de la construction de diverses petites pièces, ajoutez une condition du type: si le niveau de détail = "détaillé", alors (description des pièces de construction) la fin de la condition Les Variables Globales méritent une attention particulière. Ils font 40 pages dans le manuel de référence et sont regroupés par sujet pour une recherche facile. Dans l'exemple précédent, j'ai utilisé des données d'orientation d'objet dans le projet. La même section du manuel de référence contient des variables globales pour les coordonnées de l'emplacement de l'objet - elles sont utilisées pour créer des objets tels qu'une ligne de repère avec des coordonnées ou des élévations sur une section / élévation. Très souvent GLOB_SCALE est utilisé - l'échelle du dessin (dépend de la vue en fonction de la fenêtre courante), à une échelle de 1: 100 elle est égale à 100, à une échelle de 1:20 elle est égale à 20. Elle est le plus souvent utilisé pour convertir la taille de la police en mètres de modèle ou vice versa. En outre, ce paramètre peut être utilisé pour «suspendre» les options d'affichage sur le plan. Par exemple, pour un banc, écrivez ce qui suit dans un script 2D:

SI GLOB_SCALE <100 ALORS ! si l'échelle est supérieure à 1: 100, alors
PROJET2 3, 270, 2 ! construire une projection à partir d'un modèle 3D
AUTRE ! autrement
FIN SI ! fin de condition

Ainsi, sur le plan directeur à l'échelle 1: 500, les bancs seront affichés sous forme de rectangles, et sur un fragment à plus grande échelle, une projection détaillée sera dessinée. Une technique similaire, mais pour un modèle tridimensionnel, est utilisée dans les arbres standard - si vous cochez la case Type de couronne automatique. À une certaine distance de la caméra, le type de couronne passe de détaillé à simple et de simple à ellipse. Certes, pour que les scripts de l'objet soient relus, vous devez faire quelque chose avec eux - par exemple, après avoir changé la perspective, mis en évidence tous les arbres, ouvrir la fenêtre des paramètres de l'objet et, sans rien changer, cliquez simplement sur OK, ou cliquez et décochez la case de remplacement du capot.

Permettez-moi de le montrer en utilisant l'exemple d'approximation d'une sphère. Voici ce que j'ai écrit dans un script 3D: discam_x = abs (GLOB_EYEPOS_X-SYMB_POS_X) discam_y = abs (GLOB_EYEPOS_Y-SYMB_POS_Y) discam_h = sqr (discam_x ^ 2 + discam_y ^ 2) discam_z = discam_By ^ 2 + discam_z = discam_By ^ 2 + discam_z = 20 puis res = 50 si discam20 puis res = 20 si discam30 puis res = 10 si discam> 40 puis res = 5 resol res sphère 1 Dans le script, j'ai utilisé les variables globales GLOB_EYEPOS_X, GLOB_EYEPOS_Y, GLOB_EYEPOS_Z sont les coordonnées de l'emplacement de la caméra (les yeux) dans la fenêtre 3D du projet et SYMB_POS_X, SYMB_POS_Y, SYMB_POS_Z sont les coordonnées de l'emplacement de l'objet dans l'espace; abs - module de nombre (supprime "-", le cas échéant); sqr - racine carrée; ^ 2 - mise au carré d'un nombre.

Dans la fenêtre 3D, à différentes distances de la caméra, la sphère sera dessinée avec différentes approximations. Pour plus de clarté, j'ai activé le mode filaire (Fig. 20).

zoom
zoom

Grâce aux variables globales, l'objet peut recevoir: - des données sur l'emplacement du projet (nord, latitude, longitude, élévation), définies dans la boîte de dialogue correspondante; - étage actuel et propre étage; - le type de la vue actuelle (par exemple, dans les cavaliers GOST, la condition suivante est utilisée: si le type de vue est une liste, alors construire une vue du cavalier dans une section avec des repères de position); dans l'exemple avec un treillis, vous pouvez ajouter la condition suivante: si le type de vue est une liste, alors ne faites pas pivoter le système de coordonnées, de sorte que dans tous les cas il y aurait une vue frontale dans la liste des treillis; - affichage incomplet des constructions (vous pouvez faire en sorte que l'objet ne montre pas certaines parties si seul le noyau est sélectionné).

Vous pouvez faire glisser des données de mur dans un objet fenêtre ou porte. Les légendes peuvent obtenir de nombreuses informations différentes sur l'élément auquel elles sont associées, par exemple, une case à cocher avec des couches d'une structure multicouche ou une ligne de repère avec un volume d'un élément. Et ainsi de suite, 40 pages de variables globales différentes et très utiles. EXEMPLE 4 - marqueur de zone Voyons comment un marqueur de zone personnalisé est créé. Si vous créez un nouvel objet et sélectionnez le sous-type de passeport de zone pour celui-ci dans la section Détails, alors dans la section Paramètres, tous les paramètres spécifiques que l'outil Zone transmet au marqueur sont affichés en bleu (Fig. 21).

Рис. 21. Параметры объекта подтипа Паспорт Зоны
Рис. 21. Параметры объекта подтипа Паспорт Зоны
zoom
zoom

En utilisant la commande TEXT2, vous pouvez écrire n'importe laquelle de ces variables dans un script 2D - c'est ainsi que vous obtenez un marqueur composé uniquement de texte (Fig. 22).

zoom
zoom

En utilisant les paramètres généraux du marqueur de zone, vous pouvez définir le style de texte et la hauteur de ligne en fonction de la hauteur de la police: DEFINE STYLE "ROOM" AC_TextFont_1, ROOM_LSIZE, 5.0 STYLE "ROOM" row = ROOM_LSIZE / 1000 * GLOB_SCALE * 1.5 text2 0, row, ROOM_NUMBER text2 0, 0, ROOM_NAME text2 0, -row, ROOM_AREA Vous pouvez créer un nouveau paramètre pour sélectionner le type de marqueur (Fig.23), définir des options pour celui-ci dans le script Paramètres (Fig.24) et dans le Le script 2D écrit différents types de rendu de marqueurs pour différents types.

zoom
zoom
zoom
zoom

Script 2D: si mt = "marqueur avec numéro" alors texte2 0, 0, ROOM_NUMBER CIRCLE2 0,0, ligne endif si mt = "nombre et aire" puis texte2 0, ligne / 2, ROOM_NUMBER texte2 0, -row / 2, AREA_TEXT endif if mt = "title and area" then text2 0, row / 2, ROOM_NAME text2 0, -row / 2, AREA_TEXT endif if mt = "number, title and area" then text2 0, row, ROOM_NUMBER text2 0, 0, ROOM_NAME text2 0, -row, AREA_TEXT endif if mt = "area only" then text2 0, 0, AREA_TEXT endif Dans ce script, je n'ai pas utilisé la variable de zone prédéfinie comme zone, mais j'ai converti la zone en texte et ajouté à il unités: area = str (ROOM_AREA, 4, 2)! conversion d'un nombre en texte avec 2 décimales AREA_TEXT = area + "sq.m." ! ajouter à la valeur de la chaîne les lettres "sq.m." Vous pouvez compléter les lignes du marqueur avec des lignes séparant certaines lignes. Pour trouver la longueur d'une chaîne, utilisez la commande STW. Ajoutons au début du script: tl1 = stw (ROOM_NUMBER) / 1000 * GLOB_SCALE tl2 = stw (ROOM_NAME) / 1000 * GLOB_SCALE tl3 = stw (AREA_TEXT) / 1000 * GLOB_SCALE if mt = "number and area" puis tl = MAX (tl1, tl3) si mt = "nombre, titre et zone" alors tl = MAX (tl1, tl2) si mt = "titre et zone" alors tl = MAX (tl2, tl3) si mt = "zone seulement" alors tl = tl3 ET dans les variantes de marqueurs, ajoutez les lignes avec la commande LINE2 (Fig. 25).

Рис. 25. 2D-скрипт
Рис. 25. 2D-скрипт
zoom
zoom

Si le numéro de zone se compose de plusieurs chiffres, pour le marqueur, vous pouvez créer un paramètre pour le rayon d'un cercle, indépendant de la hauteur de la police, ou au lieu d'un cercle, décrire une forme en forme d'ellipse d'une longueur égale à la longueur de la ligne de numéro de zone que nous avons trouvée précédemment: POLY2_ 5, 1 + 2 + 4, -tl1 / 2, row, 1, tl1 / 2, row, 1, tl1 / 2, -row, 1001, -tl1 / 2, -row, 1, -tl1 / 2, row, 1001 Vous pouvez ajouter un nouveau paramètre pour le type de sol (FLOOR_TYPE) et un paramètre qui vous permet de le masquer ou de l'afficher (ShowFloorType), et dans un script 2D ajouter un triangle avec un polyligne et texte avec un type de sol: si ShowFloorType alors ADD2 0, ligne * 3 POLY2_ 4, 1, -row * 1,4, -row * 0,8, 1, ligne * 2,8,60,201, ligne * 1,4, -row * 0,8, 1, 0,0,700 text2 0,0, FLOOR_TYPE endif Pour le type de sol, il est souhaitable d'ajouter un paramètre séparé pour la plume, ainsi que des points pour l'édition graphique de l'emplacement du marqueur de sol. J'ai décrit en détail comment ajouter des points d'édition graphique dans mon webinaire, et en utilisant le lien à la fin de l'article, vous pouvez télécharger des objets et voir comment cela est implémenté dans ce cas particulier.

Et enfin, considérons un autre sous-type très important d'un objet qui ouvre de grandes possibilités - les paramètres globaux de la bibliothèque (Fig. 26).

zoom
zoom

Un objet avec ce sous-type ne construit ni ne dessine rien, il définit des paramètres dans les vues de modèle. Ainsi, vous pouvez y retirer les paramètres que vous souhaitez voir communs pour l'objet, mais en même temps être en mesure de définir différentes valeurs pour différents types.

Je vais montrer cela avec un exemple de marqueur de zone. Je suis tombé sur des projets dans lesquels il y avait plusieurs ensembles de zones dans différentes couches pour différentes vues. Si vous avez besoin de différents marqueurs, les paramètres globaux de la bibliothèque sont la meilleure solution.

J'ai un marqueur dans lequel il est possible de définir le type de sol dans un triangle et de changer le type de marquage (fig. 27). Et ces deux paramètres sont déplacés vers un fichier séparé du sous-type Global Library Parameters (Fig. 28).

zoom
zoom
zoom
zoom

Pour que ces paramètres s'affichent dans la boîte de dialogue Paramètres de la vue du modèle, vous devez les enregistrer dans le script d'interface objet (Fig. 29). Je ne m'étendrai pas en détail sur les commandes spéciales de ce script, elles sont décrites de manière suffisamment détaillée et avec des exemples dans le livre de référence. Je dirai seulement que nous décrivons ici où sera situé telle ou telle étiquette ou bouton (un champ avec un choix d'options, une coche, etc.), les images peuvent également être insérées dans l'interface utilisateur. Dans la bibliothèque standard, presque tous les objets ont une interface graphique; vous pouvez voir toutes les possibilités et voir comment ces scripts sont écrits. En plus du bouton Vérifier, le script dispose également d'un bouton Afficher. En cliquant dessus, vous pouvez voir rapidement ce qui se passe.

zoom
zoom

Vous pouvez enregistrer l'objet et l'afficher dans la boîte de dialogue Options de vue du modèle (Figure 30). Ici, nous pouvons changer le type de marquage à la fois pour toutes les zones du projet (avec ce marqueur), mais séparément pour différents types.

zoom
zoom

Maintenant, dans l'objet marqueur de zone, vous devez interroger l'objet pour les valeurs de ces deux paramètres. Dans le script principal (qui est lu par l'objet en premier, donc tous les calculs et définitions de valeurs à utiliser dans plusieurs scripts, il est préférable d'écrire ici) j'écris deux lignes comme ceci: success1 = LIBRARYGLOBAL ("LibraryGlobals20 "," ShowFloorType ", ShowFloorType) success2 = LIBRARYGLOBAL (" LibraryGlobals20 "," mt ", mt)" success "sera 1 si la demande réussit; sinon, ce sera 0.

Cela peut être utilisé pour écrire un message d'avertissement au lieu d'un marqueur de zone indiquant que l'objet LibraryGlobals20 n'a pas été chargé dans la bibliothèque.

Ensuite, l'objet fonctionne comme d'habitude, en utilisant deux nouvelles valeurs: si le type de marquage est tel ou tel, alors écrivez tel et tel, et ainsi de suite. Dans cet article, je n'ai couvert qu'une petite partie des capacités de GDL. Avec son aide, vous pouvez créer à la fois des éléments de conception très simples et des objets très complexes.

Par exemple, vous avez affaire à de petites et simples maisons de panneaux SIP. Vous avez une liste spécifique d'options pour changer de projet: - la longueur et la largeur de la maison peuvent aller de 2,4 à 24 mètres avec un pas de 1,2 m; - si la largeur dépasse 6 m, il devrait y avoir un autre mur au milieu; - deux options de hauteur de plancher en fonction de la taille du panneau; - nombre d'étages - un ou deux étages; - les fenêtres peuvent être à certains endroits des panneaux d'une certaine taille; - finition des façades en trois versions; - toiture en trois versions; - épaisseur de paroi de plusieurs tailles standard et ainsi de suite.

Vous pouvez définir tous ces paramètres pour l'objet en ajoutant le coût au mètre carré du panneau, du toit, de la décoration, etc. Et dans les scripts 2D et 3D de l'objet, construisez et dessinez complètement cette maison avec des variables au lieu de dimensions statiques. Pour que l'utilisateur ne se trompe pas dans une longue liste de paramètres, vous pouvez écrire une interface graphique pour plusieurs pages avec des images et des diagrammes. Dans le script principal, calculez tous les volumes et affichez le coût. Il est également possible d'afficher un tableau avec la disposition des panneaux dans un script 2D à côté du plan. L'écriture d'un tel objet prendra beaucoup de temps, vous devrez rédiger une spécification technique détaillée, prévoir toutes les nuances, mais vous recevrez alors non seulement un objet, mais presque un programme dans lequel, en choisissant des paramètres, vous peut obtenir un ensemble d'un projet de conception avec un calcul des matériaux et des coûts pour le client. Espérons que cet aperçu a piqué l'intérêt de quelqu'un pour les capacités de GDL. Mon histoire a commencé avec un vif désir de changer quelques petits détails dans un marqueur de zone standard, et plus je lis le guide, plus le potentiel de cet outil, à mon avis, très utile pour un architecte, se révèle. À partir du lien ci-dessous, vous pouvez télécharger tous les objets qui ont été considérés comme des exemples dans cet article: Télécharger des exemples Noter. ARCHICAD 20 a été utilisé pour écrire ces objets, ils ne s'ouvriront donc pas dans les versions antérieures. À propos de GRAPHISOFT Société GRAPHISOFT® révolutionne le BIM en 1984 avec ARCHICAD® Est la première solution BIM du secteur pour les architectes de l'industrie CAO GRAPHISOFT continue de dominer le marché des logiciels d'architecture avec des produits innovants tels que BIMcloud ™, la première solution de conception BIM collaborative en temps réel au monde, EcoDesigner ™, la première modélisation énergétique et évaluations d'efficacité énergétique des bâtiments entièrement intégrées au monde et BIMx® Est la principale application mobile pour présenter et présenter des modèles BIM. Depuis 2007, GRAPHISOFT fait partie du groupe Nemetschek.

Conseillé: