ARCHICAD: REVELING GDL: Programare Pentru Provocările Unice Ale Arhitectului

ARCHICAD: REVELING GDL: Programare Pentru Provocările Unice Ale Arhitectului
ARCHICAD: REVELING GDL: Programare Pentru Provocările Unice Ale Arhitectului

Video: ARCHICAD: REVELING GDL: Programare Pentru Provocările Unice Ale Arhitectului

Video: ARCHICAD: REVELING GDL: Programare Pentru Provocările Unice Ale Arhitectului
Video: ArchiCAD. Видеокурс. GDL для архитекторов и дизайнеров 2024, Aprilie
Anonim

Acest material expert continuă seria de articole „ARCHICAD: Rediscovering”, care a început în decembrie 2016 cu un articol de Vladimir Savitsky „Crearea structurilor și extragerea desenelor de lucru dintr-un model”, și a continuat apoi cu publicațiile Svetlana Kravchenko „ARCHICAD: Redescoperire. Vizualizare - noi oportunități pentru un arhitect "și Alexander Anișcenko" LUCRAREA ÎN ECHIPĂ: lucru în echipă eficient pas cu pas ". Ciclul este conceput pentru a ajuta utilizatorii să elibereze întregul potențial al ARCHICAD®… Le-am cerut arhitecților să împărtășească experiența lor personală de utilizare a programului folosind abordări non-standard, funcții puțin studiate și funcții noi de care mulți utilizatori ar putea să nu fie conștienți. În calitate de dezvoltatori ai aplicației ARCHICAD, suntem siguri că doar o cunoaștere profundă a produsului poate dezvălui valoarea sa deplină și poate influența decisiv rezultatele, viteza și calitatea muncii proiectantului. De asemenea, preferați „căile necitite”? Aveți experiență în utilizarea abordărilor non-standard în lucrul cu ARCHICAD, nu utilizați în mod regulat cele mai faimoase caracteristici ale aplicației? Vom fi bucuroși să invităm noi autori la cooperare: [email protected]. Svetlana Kravchenko, arhitect practicant, relatează:

mărire
mărire

Cu siguranță mulți dintre voi ați auzit despre GDL în ARCHICAD, dar nu toată lumea știe încă cum să-l folosească în muncă. Având în vedere utilitatea incredibilă a acestei caracteristici, precum și numeroasele întrebări de după primul meu webinar pe această temă, am decis să intru în detalii suplimentare despre modul în care chiar și cele mai mici cunoștințe despre aceasta pot ajuta foarte mult în activitatea de zi cu zi a un arhitect.

Să începem cu elementele de bază GDL (Geometric Description Language) este un limbaj de programare de tip BASIC conceput pentru a funcționa în mediul ARCHICAD. Descrie corpuri solide 3D (cum ar fi ușile, ferestrele, mobilierul) și simbolurile 2D din fereastra planului de etaj. Aceste obiecte se numesc Caracteristici bibliotecă.

Pentru cei care sunt cel puțin puțin familiarizați cu programarea, stăpânirea acestui limbaj nu va fi dificilă. Cu toate acestea, cu suficientă dorință, studiul GDL va fi destul de mult în puterea unei persoane care este departe de acest mediu. Orice arhitect a studiat geometria și geometria descriptivă în timpul său, are o gândire volumetrică excelentă și acest lucru este deja la jumătate din succes. Nu trebuie să încercați imediat să scrieți obiecte complexe, merită să începeți cu formele și formele geometrice de bază; o mulțime de informații pot fi culese prin examinarea scripturilor altor elemente de bibliotecă. Ei bine, principala sursă de informații este manualul de referință GDL, care poate fi accesat prin meniul Ajutor din ARCHICAD. Deci, de ce poate un arhitect să beneficieze de cunoașterea GDL? De exemplu, spre deosebire de Grasshopper, cu care puteți crea structuri complexe, GDL este pur și simplu indispensabil pentru scrierea diferiților markeri și înștiințări, precum și pentru crearea de componente speciale pentru alte caracteristici sau instrumente de bibliotecă. Una dintre primele mele aplicații ale GDL în munca mea a fost crearea unei foi speciale a ușii panoului, care, când a fost redimensionată, nu s-a redimensionat în toate direcțiile, ci a modificat doar dimensiunile panoului. Grosimea cadrului creț și lățimea hamului au rămas neschimbate. De asemenea, arhitecții doresc foarte des să adauge câteva funcții simple obiectelor existente ale bibliotecilor standard - și acesta este principalul motiv pentru care încep să se adâncească în GDL. Desigur, cunoașterea GDL nu este vitală, iar multe dintre aceste sarcini pot fi realizate cu instrumente standard. De exemplu, puteți construi umpluturi cu dale și le puteți salva ca o frunză specială de ușă. Dacă aveți doar câteva dintre aceste uși non-standard, atunci acest lucru va fi și mai rapid. Dar dacă în proiectul dvs. există multe uși similare de diferite dimensiuni și lățimea lor se schimbă în procesul de lucru, atunci scrierea unui panou special în GDL va accelera și simplifica foarte mult munca. Descrierea geometrică implică faptul că oricare dintre formele posibile pot fi scrise în text în funcție de dimensiuni sau coordonate. Pentru un script 3D, există un bloc de comenzi pentru forme spațiale de bază, cum ar fi: - BLOC și CĂRĂMIDĂ - un paralelipiped construit în trei dimensiuni cu originea în punctul 0 al sistemului de coordonate BLOC a, b, c CARAMICA a, b, c

mărire
mărire

- CILINDRU - cilindru de-a lungul axei Z, cu înălțimea h și raza r CILINDRU h, r

- SFERĂ - sferă centrată la origine și raza r SFERA r

mărire
mărire

O elipsă și un con sunt descrise în mod similar. Următorul bloc de cifre este deja mai complicat - acestea sunt diverse prisme. Acestea sunt descrise printr-un set de coordonate punctuale. Cea mai simplă prismă este determinată de numărul de puncte (n), înălțimea (h) și listarea coordonatelor tuturor punctelor în ordine. PRISM n, h, x1, y1, … xn, yn

Există multe soiuri de prismă. Următoarea vedere, PRISM_, vă permite să indicați codurile de stare la coordonatele punctelor, care determină vizibilitatea fețelor și a marginilor, și vă permit, de asemenea, să creați prisme curbate și prisme cu găuri (consultați secțiunea Coduri de stare din cartea de referință). Un alt fel, BPRISM_, creează o prismă răsucită în jurul axei Y. FPRISM_ construiește o prismă cu șanț sau file în partea superioară.

mărire
mărire

Există mai multe comenzi care descriu forme mai complexe bazate pe polilinie: EXTRUDENȚĂ, PIRAMIDĂ, REVOLVĂ, REGLATĂ, MĂSURĂ, TUB, COON, MASĂ. Descrierea lor cu exemple poate fi găsită în referință. Pentru un script 2D, formele sunt descrise de alte comenzi: linie, cerc, dreptunghi, polilinie, spline. Dar puteți înregistra și o comandă pentru construirea unei proiecții dintr-un script 3D.

Crearea formelor 2D sau 3D este doar o parte a funcționalității GDL. Dacă aveți nevoie doar de o masă, atunci este mai ușor să o construiți cu instrumentele ARCHICAD în sine. Un obiect este scris în cazul în care este necesar un anumit parametricism: capacitatea de a selecta diferite tipuri de picioare de masă, numărul de picioare, redimensionarea mesei menținând în același timp dimensiunile rămase, calculați cheresteaua pentru fabricație, greutate și cost Este posibil ca obiectul să nu conțină deloc geometrie, ci doar să efectueze calcule. Pentru aceasta, sunt utilizate și Clauze de control (Operatori de control), cum ar fi bucle, declarații condiționale, care se referă la un loc specific din cod (subrutină). Cel mai bine este să vă familiarizați cu ciclurile și condițiile de la bun început - acestea sunt utilizate des. Deci, toate exemplele de mai jos au afirmații condiționate. EXEMPLUL # 1 - rotația obiectului Designerii doresc adesea să facă un obiect rotativ. Folosind acest exemplu simplu, vom analiza structura elementului de bibliotecă, precum și ferestrele principale ale editorului de obiecte GDL. Pentru a deschide orice obiect situat în spațiul proiectului (dacă dezvoltatorul nu a pus o parolă), trebuie să îl selectați și să apăsați combinația de taste Ctrl + Shift + O. O altă modalitate este de a utiliza meniul Fișier> Biblioteci și obiecte> Deschidere obiect. Dacă în acest moment nu a fost selectat niciun obiect, atunci se va deschide o fereastră pentru selectarea unui obiect. Să adăugăm parametrii de rotație, de exemplu, la o grilă de fereastră (Fig. 1).

mărire
mărire

Așadar, am deschis fereastra GDL Object Editor (Fig. 2). În stânga sus, există o fereastră pentru vizualizarea diferitelor vizualizări, ca în fereastra obișnuită a parametrilor obiectului; chiar și în stânga sunt butoane pentru alegerea unei vizualizări - plan, elevație, fereastră 3D și previzualizare. Mai jos sunt butoane pentru deschiderea tabelelor de parametri, a listelor de date și a scripturilor. Scripturile pot fi deschise în două moduri: faceți clic pe butonul cu numele scriptului - deschideți în aceeași fereastră, faceți clic pe butonul din dreapta cu pictograma ferestrei - scriptul se va deschide într-o fereastră separată. Acest lucru poate fi util pentru a vedea diferite scripturi în același timp (Figura 3).

mărire
mărire

În partea de sus a ferestrei oricărui script există un buton Verificare foarte necesar: când faceți clic pe acesta, editorul vă va solicita dacă există erori în script. Mesajul va conține motivul erorii și numărul liniei în care a fost găsită eroarea. În secțiunea „Detalii”, puteți selecta un subtip de obiect: frunză de ușă personalizată, clanță, cadru de perete perdea și așa mai departe. Deci, obiectele speciale (stilou, pânză, cadru) vor apărea în fereastra corespunzătoare pentru selectarea acestor elemente. Când este selectat un tip 2D, obiectul nu va avea ferestre pentru geometria 3D. Acolo puteți selecta, de asemenea, tipuri pentru diferiți markeri - un nod, secțiuni, subtitrări de lider, zone; vor apărea și în instrumentele lor respective. În această secțiune, puteți completa o descriere a obiectului și puteți selecta o parolă. Mai departe - „Parametri”, unde toate datele care sunt utilizate în acest obiect și care pot fi modificate în timpul lucrului la proiect sunt prezentate sub forma unui tabel. Aici trebuie să adăugăm parametri pentru ture, pe care le vom folosi mai târziu.

mărire
mărire

Apăsați butonul Nou situat deasupra mesei (Fig. 4). Va apărea un rând nou în care trebuie să completați coloanele. Prima dintre aceste coloane este Variabilă. Aici scriem numele variabilei, care va fi folosită în scripturi, în latină și fără spații. Trebuie să îl denumiți astfel încât să fie ușor de reținut și, în același timp, să înțelegeți ușor de ce este responsabilă această variabilă. În cazul nostru, trebuie să creăm două variabile pentru valoarea unghiurilor de rotație de-a lungul axelor X și Y (obiectul poate fi oricum rotit în jurul axei Z chiar în plan). Am decis să le denumesc angle_x și angle_y. În coloana următoare, trebuie să selectați tipul de date. Alegerile sunt prezentate în tabelul 1.

mărire
mărire

Ultimele două tipuri nu sunt utilizate în construcția obiectului, dar sunt necesare pentru o mai mare claritate și ordinea listei în fereastra parametrilor obiectului. Avem nevoie de un colț - aceasta este a doua pictogramă din tabel. A treia coloană este Nume. Aici puteți scrie fără reguli în orice limbă ceea ce vrem să vedem mai târziu în fereastra parametrilor obiectului. Iar ultima coloană este Value. Acum puteți lăsa 0 aici: această valoare se schimbă în orice moment atât în script cât și în parametrii obiectului în sine. Figura 2 arată cum arată cele două noi opțiuni în fereastra Editorului de obiecte GDL. 5. Folosiți săgețile de la începutul liniei pentru a muta linia într-o locație convenabilă.

mărire
mărire

Apoi, trebuie să salvați obiectul sub un nume nou, deoarece biblioteca standard este codificată în container și nu puteți suprascrie obiecte din acesta. Fereastra Object Parameters va arăta astfel (Fig. 6).

mărire
mărire

Există doi parametri noi, a căror valoare poate fi modificată oricând. Dar acum nu se va întâmpla nimic, deoarece nu au fost încă scrise comenzi folosindu-le. Acum trebuie să deschideți fereastra scriptului 3D. Iată o descriere completă a modului de construire a unui model 3D bazat pe parametrii dați. În plus, în obiect pot fi imbricate diverse macrocomenzi. Înainte de toate construcțiile, trebuie să rotiți sistemul de coordonate în care va fi construit obiectul. Aici este important să înțelegem următoarea logică: toate rotațiile, mișcările și scalarea au loc diferit decât atunci când se lucrează în ARCHICAD în sine. Nu luăm un element și îl rotim, ci rotim sistemul global de coordonate (după ce îl schimbăm, acesta devine local) față construirea unui obiect. Mutare (ADD Command), Rotate (ROT), Scale (MUL) sunt comenzi de transformare a sistemului de coordonate. Alte transformări pot fi șterse din script una câte una, mai multe odată sau șterse dintr-o dată. Cartea de referință descrie toate acestea în detaliu suficient și cu exemple. Un exemplu de mișcare a unui sistem de coordonate în spațiu 3D de-a lungul a trei axe simultan este prezentat în Fig. 7. ADĂUGAȚI a, b, c

mărire
mărire

Deci, înainte de toate construcțiile, rotim sistemul de coordonate, mai întâi de-a lungul uneia, apoi de-a lungul celeilalte axe. Rotirea de-a lungul axei X este realizată de comanda ROTX alphax, unde alphax este unghiul de rotație în sens invers acelor de ceasornic; în loc de alphax, trebuie să introduceți o variabilă creată anterior. Rotația de-a lungul axei Y se realizează în același mod (Fig. 8).

mărire
mărire

Acum puteți seta unghiuri diferite pentru rotație - iar modificările modelului 3D vor avea loc în fereastra de vizualizare situată în partea stângă sus (Fig. 9).

mărire
mărire

Acum puteți seta unghiuri diferite pentru rotație - iar modificările modelului 3D vor avea loc în fereastra de vizualizare situată în partea stângă sus (Fig. 9). Dar încă nu se întâmplă nimic în 2D. Într-un script 2D, un obiect este construit cu linii și polilinii separate, astfel încât desenul unui obiect în plan este de multe ori mai rapid. La un loc, acest lucru este imperceptibil, dar dacă există sute de astfel de rețele în proiect, frânarea va fi semnificativă. Puteți calcula coordonatele punctelor acestor linii și le puteți trasa așa cum ar arăta în proiecția obiectului rotit, dar acest lucru nu este foarte simplu și nu foarte rapid. În această rețea, propun următoarea soluție: dacă unghiurile din X sau Y nu sunt egale cu zero, atunci obiectul din scriptul 2D, adică pentru plan, va fi redat ca o proiecție a modelului 3D și altfel la felul vechi. Proiecția modelului pentru un script 2D este construită prin comanda PROJECT2 projection_code, angle, method. Puteți citi ce înseamnă proiecție_cod, unghi, metodă în cartea de referință, dar vom face cunoștință cu comanda mai importantă din secțiunea Instrucțiunilor de control IF - THEN - ELSE - ENDIF. Acestea sunt afirmații condiționale care vă vor ajuta să construiți clauza condițională din paragraful anterior. În fig. 10 Am evidențiat comenzile adăugate în scriptul 2D și am adăugat „traducere” cu roșu în dreapta.

mărire
mărire

Acum trebuie doar să salvați obiectul și îl puteți folosi (Fig. 11). Avantajul acestei metode față de conversia în morf este că obiectul rămâne parametric, poate fi citit în specificații, în acesta puteți modifica dimensiunile lamelelor, dimensiunea cadrului și orice altceva care era în obiectul original.

mărire
mărire

Deci, în detaliu, folosind acest exemplu, am examinat principalele ferestre și scripturi ale Editorului de obiecte GDL. Dacă obiectul pe care l-ați ales pentru rotație are parametri nu sub formă de listă, ca în această rețea, ci sub formă de imagini și diagrame, aceasta înseamnă că dezvoltatorul a scris și o interfață grafică. Cel mai adesea, lista standard cu parametri este ascunsă, ca în Fig. 12: Nu există secțiunea „Toți parametrii” în lista derulantă a paginilor cu parametri.

mărire
mărire

În acest caz, trebuie să accesați scriptul de parametri și să găsiți comanda care ascunde toți parametrii (Fig. 13). Acest script descrie toate acțiunile care afectează parametrii: - desemnarea opțiunilor sau a intervalelor de valori posibile (VALORI); - orice calcul, al cărui rezultat este atribuit parametrului (PARAMETRI); - ascunderea sau blocarea parametrilor (HIDEPARAMETER, LOCK).

mărire
mărire

Linia HIDEPARAMETERS ALL poate fi pur și simplu ștearsă sau punând un „!” La începutul rândului, faceți-l ilizibil (conform sintaxei GDL, o linie care începe cu un semn de exclamare este considerată un comentariu. Mai departe, voi scrie descrieri și traduceri în capturile de ecran după semnul „!”). După aceea, linia „Toți parametrii” va apărea în lista de pagini de parametri și, selectând-o, veți vedea o listă standard cu parametri, printre care vor exista noi linii de rotație. EXEMPLUL # 2 - text pe un simbol Iau următorul exemplu din proiectul actual. Când lucrați cu planul unei clădiri rezidențiale cu mai multe apartamente, a fost necesar să puneți litera „K” pe unitățile exterioare ale aparatelor de aer condiționat - și astfel încât să fie întotdeauna amplasată pe verticală. Desigur, litera ar fi putut fi pur și simplu adăugată deasupra cu text sau cu o inscripție-text externă, dar apoi, când aerul condiționat a fost rotit, s-ar putea ca textul să fi fost mutat și el. Pentru a începe, am adăugat patru parametri noi (Figura 14):

mărire
mărire

1. Arată text: tipul de parametru este o valoare booleană, ceea ce implică două valori posibile: 0 (nu) și 1 (da). Astfel, textul poate fi activat sau dezactivat.

2. Text special: tip de parametru - text. Vă permite să scrieți orice text în simbol (intenționez să folosesc o singură literă astfel încât să se potrivească în interiorul dreptunghiului blocului de aer condiționat).

3. Font: tip - text. Vă rugăm să rețineți că unele tipuri de scriere ale acestei variabile vă permit să selectați valorile fontului în coloană din lista celor instalate pe computer. „Fonttype” apelează automat această listă, dar dacă scriu „typefont” sau doar „font”, atunci trebuie să scriu numele fontului manual. Am observat acest moment întâmplător într-unul dintre obiectele standard.

4. Pix stilou: tip - stilou. Ei bine, totul este clar aici.

Acum să ne uităm la pictogramele pe care am dat clic la începutul liniilor. Prima linie are o pictogramă apăsată

Image
Image

ceea ce înseamnă îndrăzneț - îndrăzneț. Adică, această linie din fereastra parametrilor obiectului va fi aldinată. Celelalte trei au pictogramă

Image
Image

… Înseamnă că aceste linii vor fi cuibărite în lista derulantă de sub prima linie. În fig. 15 este o captură de ecran care ilustrează cum arată în Parametrii obiectului. Pentru început, am adăugat patru parametri noi (Figura 15):

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

Și în fig. 16 - ceea ce am adăugat într-un script 2D (în mod tradițional cu traducere și comentarii).

mărire
mărire

Smochin. 16. Liniile adăugate într-un script 2D În următoarea captură de ecran (Fig. 17), pentru o mai mare claritate, am colorat diferite tipuri de cuvinte / comenzi / variabile.

mărire
mărire

Obiectul este gata (fig. 18).

mărire
mărire

Și dacă nu aș scrie linii cu rotație și scalare, atunci obiectul ar arăta ca în fig. 19.

mărire
mărire

EXEMPLUL # 3 - detalii Pentru a simplifica lucrul la un proiect, atunci când scrieți un obiect, puteți adăuga un parametru text cu o gamă de opțiuni pentru detalii (simplu, mediu, detaliat). Și în scriptul 3D, atunci când construiți diferite părți mici, adăugați o condiție de tipul: dacă nivelul de detaliu = "detaliat", atunci (descrierea pieselor de construcție) sfârșitul condiției Variabilele globale merită o atenție specială. Acestea au 40 de pagini în manualul de referință și sunt grupate pe subiecte pentru o căutare ușoară. În exemplul anterior, am folosit câteva date de orientare a obiectului în proiect. Aceeași secțiune a manualului de referință conține variabile globale pentru coordonatele locației obiectului - acestea sunt utilizate pentru a crea obiecte, cum ar fi un lider cu coordonate sau cote pe o secțiune / cota. Foarte des se folosește GLOB_SCALE - scara desenului (depinde de vizualizare în funcție de fereastra curentă), la o scară de 1: 100 este egală cu 100, la o scară de 1:20 este egală cu 20. este cel mai adesea folosit pentru a converti dimensiunea fontului în contoare de model sau invers. De asemenea, acest parametru poate fi utilizat pentru a „bloca” opțiunile de afișare din plan. De exemplu, pentru o bancă, scrieți următoarele într-un script 2D:

IF GLOB_SCALE <100 THEN ! dacă scara este mai mare de 1: 100, atunci
PROIECT2 3, 270, 2 ! construiți o proiecție dintr-un model 3D
ALTE ! in caz contrar
ENDIF ! sfârșitul stării

Deci, pe planul general la o scară de 1: 500, băncile vor fi afișate ca dreptunghiuri, iar pe un fragment cu o scară mai mare, va fi desenată o proiecție detaliată. O tehnică similară, dar pentru un model tridimensional, este utilizată în arborii standard - dacă activați caseta de selectare Tip coroană automată. La o anumită distanță de cameră, tipul coroanei se schimbă de la detaliat la simplu și de la simplu la elipsă. Este adevărat, pentru ca scripturile obiectului să fie recitite, trebuie să faceți ceva cu ele - de exemplu, după schimbarea perspectivei, evidențierea tuturor copacilor, deschiderea ferestrei parametrilor obiectului și, fără a schimba nimic, faceți clic pe OK, sau faceți clic și debifați caseta de selectare pentru înlocuirea capacului.

Permiteți-mi să o arăt folosind exemplul aproximării unei sfere. Iată ce am scris într-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 = 20 apoi res = 50 dacă discam20 atunci res = 20 dacă discam30 atunci res = 10 dacă discam> 40 atunci res = 5 rezolți sfera 1 În script am folosit variabilele globale GLOB_EYEPOS_X, GLOB_EYEPOS_Y, GLOB_EYEPOS_Z sunt coordonatele locației camera (ochii) din fereastra 3D a proiectului și SYMB_POS_X, SYMB_POS_Y, SYMB_POS_Z sunt coordonatele locației obiectului în spațiu; modul abs - număr (elimină "-", dacă există); sqr - rădăcină pătrată; ^ 2 - pătratul unui număr.

În fereastra 3D, la diferite distanțe de cameră, sfera va fi desenată cu aproximări diferite. Pentru claritate, am activat modul wireframe (Fig. 20).

mărire
mărire

Prin intermediul Variabilelor Globale, obiectul poate primi: - date despre locația proiectului (nord, latitudine, longitudine, altitudine), setate în caseta de dialog corespunzătoare; - etaj actual și etaj propriu; - tipul vizualizării curente (de exemplu, în jumperii GOST se folosește următoarea condiție: dacă tipul vizualizării este o listă, atunci construiți o vizualizare a jumperului într-o secțiune cu lideri de poziție); în exemplul cu rețea, puteți adăuga următoarea condiție: dacă tipul de vizualizare este o listă, atunci nu rotiți sistemul de coordonate, astfel încât, în orice caz, ar exista o vedere frontală în lista rețelelor; - afișarea incompletă a construcțiilor (puteți face ca obiectul să nu afișeze unele părți dacă este selectat doar nucleul).

Puteți trage date de perete într-un obiect de fereastră sau ușă. Înștiințările pot obține o mulțime de informații diferite despre elementul cu care sunt asociate, de exemplu, o casetă de selectare cu straturi ale unei structuri cu mai multe straturi sau un lider cu volumul unui element. Și așa mai departe, 40 de pagini cu variabile globale diferite și foarte utile. EXEMPLUL 4 - marker de zonă Să aruncăm o privire asupra modului în care este creat un marker de zonă personalizat. Dacă creați un obiect nou și selectați subtipul Zone Passport pentru acesta în secțiunea Detalii, atunci în secțiunea Parametri, toți parametrii specifici pe care instrumentul Zone îi trece către marker sunt afișați în albastru (Fig. 21).

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

Folosind comanda TEXT2, puteți scrie oricare dintre aceste variabile într-un script 2D - așa se obține un marker format doar din text (Fig. 22).

mărire
mărire

Utilizând parametrii generali ai marcatorului de zonă, puteți defini stilul textului și înălțimea liniei în funcție de înălțimea fontului: DEFINE STYLE „ROOM” AC_TextFont_1, ROOM_LSIZE, 5.0 STYLE „ROOM” rând = ROOM_LSIZE / 1000 * GLOB_SCALE * 1.5 text2 0, rând, ROOM_NUMBER text2 0, 0, ROOM_NAME text2 0, -row, ROOM_AREA Puteți crea un nou parametru pentru a selecta tipul de marker (Fig. 23), setați opțiuni pentru acesta în scriptul Parameters (Fig. 24) și în Scriptul 2D scrie diferite tipuri de redare a markerului pentru diferite tipuri.

mărire
mărire
mărire
mărire

Script 2D: dacă mt = "marker cu număr" atunci text2 0, 0, ROOM_NUMBER CIRCLE2 0,0, rândul endif dacă mt = "număr și zonă" atunci text2 0, rând / 2, ROOM_NUMBER text2 0, -row / 2, AREA_TEXT endif if mt = "title and area" then text2 0, rând / 2, ROOM_NAME text2 0, -row / 2, AREA_TEXT endif if mt = "number, title and area" then text2 0, rând, ROOM_NUMBER text2 0, 0, ROOM_NAME text2 0, -row, AREA_TEXT endif if mt = "only area" then text2 0, 0, AREA_TEXT endif În acest script, nu am folosit variabila de zonă predefinită ca zonă, ci am convertit zona în text și am adăugat la it units: area = str (ROOM_AREA, 4, 2)! convertirea unui număr în text cu 2 zecimale AREA_TEXT = zonă + "mp" ! adăugând la valoarea șirului literele „sq.m.” Puteți completa liniile din marker cu linii care separă unele linii. Pentru a găsi lungimea unui șir, utilizați comanda STW. Să adăugăm la începutul scriptului: 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" then tl = MAX (tl1, tl3) dacă mt = „număr, titlu și zonă” atunci tl = MAX (tl1, tl2) dacă mt = „titlu și zonă” atunci tl = MAX (tl2, tl3) dacă mt = „numai zonă” atunci tl = tl3 ȘI în variantele de markeri, adăugați liniile cu comanda LINE2 (Fig. 25).

Рис. 25. 2D-скрипт
Рис. 25. 2D-скрипт
mărire
mărire

Dacă numărul zonei este format din mai multe cifre, pentru marcator, puteți crea un parametru pentru raza unui cerc, independent de înălțimea fontului sau, în locul unui cerc, descrieți o formă asemănătoare unei elipse cu o lungime egală cu lungimea a liniei numerice de zonă pe care am găsit-o mai devreme: POLY2_ 5, 1 + 2 + 4, -tl1 / 2, rând, 1, tl1 / 2, rând, 1, tl1 / 2, -row, 1001, -tl1 / 2, -row, 1, -tl1 / 2, row, 1001 Puteți adăuga un nou parametru pentru tipul etajului (FLOOR_TYPE) și un parametru care vă permite să îl ascundeți sau să-l afișați (ShowFloorType), iar într-un script 2D adăugați un triunghi cu un polilinie și text cu un tip etaj: dacă ShowFloorType atunci ADD2 0, rândul * 3 POLY2_ 4, 1, -row * 1.4, -row * 0.8, 1, rând * 2.8.60.201, rând * 1.4, -row * 0.8, 1, 0,0,700 text2 0,0, FLOOR_TYPE endif Pentru tipul de podea, este de dorit să adăugați un parametru separat pentru stilou, precum și puncte pentru editarea grafică a locației marcatorului de podea. Am descris în detaliu cum să adaug puncte de editare grafică în seminarul meu web și, folosind linkul de la sfârșitul articolului, puteți descărca obiecte și puteți vedea cum este implementat acest lucru în acest caz particular.

Și, în sfârșit, să luăm în considerare un alt subtip foarte important al unui obiect care deschide posibilități mari - Parametrii Globali ai Bibliotecii (Fig. 26).

mărire
mărire

Un obiect cu acest subtip nu construiește sau desenează nimic, definește parametrii în vizualizările modelului. Astfel, acolo puteți scoate acei parametri pe care ați dori să îi vedeți obișnuiți pentru obiect, dar în același timp să puteți seta valori diferite pentru diferite tipuri.

Voi arăta acest lucru cu un exemplu de marker de zonă. Am dat peste proiecte în care existau mai multe seturi de zone în straturi diferite pentru vizualizări diferite. Dacă este nevoie de diferiți markeri, atunci Biblioteca Global Parameters este cea mai bună soluție.

Am un marker în care este posibil să setați tipul de podea într-un triunghi și să schimbați tipul de marcare (fig. 27). Și acești doi parametri sunt mutați într-un fișier separat al subtipului Global Library Parameters (Fig. 28).

mărire
mărire
mărire
mărire

Pentru ca acești parametri să fie afișați în caseta de dialog Parametri de vizualizare model, trebuie să îi înregistrați în scriptul de interfață obiect (Fig. 29). Nu mă voi opri în detaliu asupra comenzilor speciale pentru acest script, ele sunt descrise în detaliu suficient și cu exemple în cartea de referință. Voi spune doar că aici descriem unde va fi situată această etichetă sau buton (un câmp cu o gamă de opțiuni, o bifă etc.), imaginile pot fi, de asemenea, inserate în interfața utilizatorului. În biblioteca standard, aproape fiecare obiect are o interfață grafică; puteți vedea toate posibilitățile și puteți vedea cum sunt scrise aceste scripturi. În plus față de butonul Verificare, scriptul are și un buton Vizualizare. Făcând clic pe acesta, puteți vedea rapid ce se întâmplă.

mărire
mărire

Puteți salva obiectul și îl puteți vizualiza în caseta de dialog Opțiuni vizualizare model (Figura 30). Aici putem modifica tipul de marcare simultan pentru toate zonele din proiect (cu acest marker), dar separat pentru diferite tipuri.

mărire
mărire

Acum, în obiectul marcator de zonă, trebuie să interogați obiectul pentru valorile acestor doi parametri. În Scriptul principal (care este citit mai întâi de obiect, deci toate calculele și definițiile valorilor care ar trebui utilizate în mai multe scripturi, este mai bine să scriu aici) scriu două rânduri astfel: success1 = LIBRARYGLOBAL ("LibraryGlobals20 "," ShowFloorType ", ShowFloorType) success2 = LIBRARYGLOBAL (" LibraryGlobals20 "," mt ", mt)" success "va fi 1 dacă solicitarea are succes; altfel va fi 0.

Aceasta poate fi utilizată pentru a scrie un mesaj de avertizare în locul unui marker de zonă că obiectul LibraryGlobals20 nu a fost încărcat în bibliotecă.

Apoi obiectul funcționează ca de obicei, folosind două valori noi: dacă tipul de marcare este așa, scrieți așa ceva și așa mai departe. În acest articol, am acoperit doar o mică parte din capacitățile GDL. Cu ajutorul acestuia, puteți crea atât elemente de design foarte simple, cât și obiecte foarte complexe.

De exemplu, aveți de-a face cu case de panouri SIP mici și simple. Aveți o listă specifică de opțiuni pentru schimbarea proiectului: - lungimea și lățimea casei pot fi de la 2,4 la 24 de metri cu un pas de 1,2 m; - dacă lățimea depășește 6 m, atunci ar trebui să existe un alt perete în mijloc; - două opțiuni pentru înălțimile podelei în funcție de dimensiunea panoului; - numărul de etaje - unul sau două etaje; - ferestrele pot fi în anumite locuri de panouri de o anumită dimensiune; - finisarea fațadelor în trei versiuni; - acoperiș în trei versiuni; - grosimea peretelui de mai multe dimensiuni standard și așa mai departe.

Puteți seta toți acești parametri pentru obiect adăugând costul pe metru pătrat al panoului, acoperișului, decorului etc. Și în scripturile 2D și 3D ale obiectului, construiți complet și desenați această casă cu variabile în loc de dimensiuni statice. Pentru ca utilizatorul să nu se confunde într-o listă lungă de parametri, puteți scrie o interfață grafică pentru mai multe pagini cu imagini și diagrame. În Scriptul principal, calculați toate volumele și afișați costul. De asemenea, este posibil să afișați un tabel cu aspectul panourilor într-un script 2D lângă plan. Scrierea unui astfel de obiect va dura mult timp, va trebui să întocmiți o specificație tehnică detaliată, să prevedeți toate nuanțele, dar apoi veți primi nu doar un obiect, ci aproape un program în care, alegând parametrii, poate obține un set de proiect de proiectare cu un calcul al materialelor și al costului pentru client. Sperăm că această prezentare generală a stârnit interesul cuiva pentru capacitățile GDL. Povestea mea a început cu o dorință acerbă de a schimba unele detalii mici într-un marker de zonă standard și, cu cât citesc ghidul, cu atât mai mult este dezvăluit potențialul acestui instrument, în opinia mea, foarte util pentru un arhitect. Din linkul de mai jos puteți descărca toate obiectele care au fost considerate ca exemple în acest articol: Descărcați exemple Notă. ARCHICAD 20 a fost folosit pentru a scrie aceste obiecte, deci nu se vor deschide în versiunile anterioare. Despre GRAPHISOFT Compania GRAPHISOFT® a revoluționat BIM în 1984 cu ARCHICAD® Este prima soluție BIM din industrie pentru arhitecții din industria CAD. GRAPHISOFT continuă să conducă piața software-ului de arhitectură cu produse inovatoare, cum ar fi BIMcloud ™, prima soluție de proiectare BIM colaborativă în timp real din lume, EcoDesigner ™, prima evaluare completă a modelării energetice și a eficienței energetice a clădirilor și a BIMx din lume.® Este cea mai importantă aplicație mobilă pentru prezentarea și prezentarea modelelor BIM. Din 2007, GRAPHISOFT face parte din Grupul Nemetschek.

Recomandat: