ARCHICAD: REVEALING GDL: Programmering For Arkitektens Unike Utfordringer

ARCHICAD: REVEALING GDL: Programmering For Arkitektens Unike Utfordringer
ARCHICAD: REVEALING GDL: Programmering For Arkitektens Unike Utfordringer

Video: ARCHICAD: REVEALING GDL: Programmering For Arkitektens Unike Utfordringer

Video: ARCHICAD: REVEALING GDL: Programmering For Arkitektens Unike Utfordringer
Video: ARCHICAD + GDL - 3d размер 01 2024, Mars
Anonim

Dette ekspertmaterialet fortsetter artikkelserien "ARCHICAD: Rediscovering", som begynte i desember 2016 med en artikkel av Vladimir Savitsky "Opprettelse av strukturer og utvinning av arbeidstegninger fra en modell", og fortsatte deretter med publikasjonene til Svetlana Kravchenko "ARCHICAD: Gjenoppdager. Visualisering - nye muligheter for en arkitekt "og Alexander Anishchenko" TEAMWORK: effektivt teamarbeid trinn for trinn ". Syklusen er designet for å hjelpe brukerne å frigjøre det fulle potensialet til ARCHICAD®… Vi ba arkitektene dele sin personlige opplevelse av å bruke programmet ved hjelp av ikke-standardiserte tilnærminger, lite studerte funksjoner og nye funksjoner som mange brukere kanskje ikke engang er klar over. Som utviklere av ARCHICAD-applikasjonen, er vi sikre på at bare en dyp kunnskap om produktet kan avsløre dets fulle verdi og avgjørende påvirke resultatene, hastigheten og kvaliteten på designerens arbeid. Foretrekker du også "uleste stier"? Har du erfaring med å bruke ikke-standardiserte tilnærminger i arbeidet med ARCHICAD, bruker du ikke de mest kjente funksjonene i applikasjonen regelmessig? Vi vil gjerne invitere nye forfattere til samarbeid: [email protected]. Svetlana Kravchenko, en praktiserende arkitekt, rapporterer:

zooming
zooming

Sikkert mange av dere har hørt om GDL i ARCHICAD, men ikke alle vet fortsatt hvordan de skal bruke det på jobb. Med tanke på den utrolige nytten av denne funksjonen, i tillegg til de mange spørsmålene etter mitt første webinar om dette emnet, bestemte jeg meg for å gå nærmere inn på hvordan selv den minste kunnskapen om det kan hjelpe mye i det daglige arbeidet med en arkitekt.

La oss starte med det grunnleggende GDL (Geometric Description Language) er et BASIC-lignende programmeringsspråk designet for å fungere i ARCHICAD-miljøet. Den beskriver 3D solide kropper (som dører, vinduer, møbler) og 2D-symboler i gulvplanvinduet. Disse objektene kalles Library Features.

For de som i det minste er litt kjent med programmering, vil det ikke være vanskelig å mestre dette språket. Imidlertid, med tilstrekkelig ønske, vil studien av GDL være ganske innenfor makten til en person som er langt fra dette miljøet. Enhver arkitekt har studert geometri og beskrivende geometri i sin tid, har utmerket volumetrisk tenking, og dette er allerede halvparten av suksessen. Du trenger ikke umiddelbart prøve å skrive komplekse objekter, det er verdt å starte med de grunnleggende geometriske formene og formene; mye informasjon kan hentes ved å undersøke manusene til andre bibliotekselementer. Vel, den viktigste informasjonskilden er GDL-referansehåndboken, som du kan få tilgang til via Help-menyen i selve ARCHICAD. Så hvorfor kan en arkitekt dra nytte av kunnskap om GDL? For eksempel, i motsetning til Grasshopper, som du kan lage komplekse strukturer med, er GDL rett og slett uunnværlig for å skrive forskjellige markører og påminnelser, samt for å lage spesielle komponenter for andre biblioteksfunksjoner eller verktøy. En av mine første applikasjoner av GDL i arbeidet mitt var å lage et spesielt paneldørblad, som, når det ble endret størrelse, ikke skalerte i alle retninger, men bare endret paneldimensjonene. Tykkelsen på den krøllete rammen og bredden på selen forble uendret. Arkitekter vil også ofte legge til noen enkle funksjoner til eksisterende objekter fra standardbibliotekene - og dette er hovedårsaken til at de begynner å fordype seg i GDL. Selvfølgelig er ikke kunnskap om GDL viktig, og mange av disse oppgavene kan oppnås med standardverktøy. For eksempel kan du konstruere fyllinger med plater og lagre dem som et spesielt dørblad. Hvis du bare har noen få av disse ikke-standard dørene, vil dette bli enda raskere. Men hvis det i prosjektet ditt er mange lignende dører i forskjellige størrelser og bredden endres under arbeidsprosessen, vil det å skrive et spesielt panel i GDL øke hastigheten og forenkle arbeidet. Geometrisk beskrivelse innebærer at noen av de mulige figurene kan skrives i tekst i henhold til dimensjoner eller koordinater. For et 3D-skript er det en blokk med kommandoer for grunnleggende romlige former, for eksempel: - BLOKK og MURSTEIN - en parallellpipet konstruert i tre dimensjoner med opprinnelsen ved punkt 0 i koordinatsystemet BLOKKE a, b, c MURSTEN a, b, c

zooming
zooming

- SYLIND - sylinder langs Z-aksen, med høyde h og radius r CYLIND h, r

- SPHERE - kule sentrert ved opprinnelse og radius r SPHERE r

zooming
zooming

En ellipse og en kjegle er beskrevet på en lignende måte. Den neste figurblokken er allerede mer komplisert - dette er forskjellige prismer. De er beskrevet av et sett med punktkoordinater. Det enkleste prisme bestemmes av antall punkter (n), høyde (h) og liste opp koordinatene til alle punkter i rekkefølge. PRISM n, h, x1, y1, … xn, yn

Det er mange varianter av prisme. Den neste utsikten, PRISM_, lar deg indikere statuskoder til koordinatene til punktene, som bestemmer synligheten av ansikter og kanter, og lar deg også lage buede prismer og prismer med hull (se avsnittet Statuskoder i referanseboken). En annen slags, BPRISM_, skaper et prisme vridd rundt Y-aksen. FPRISM_ bygger et prisme med avfasning eller filet på oversiden.

zooming
zooming

Det er flere kommandoer som beskriver mer komplekse polyline-baserte former: EXTRUDE, PYRAMID, REVOLVE, RULED, SWEEP, TUBE, COONS, MASS. Beskrivelsen av dem med eksempler finner du i referansen. For et 2D-skript, er figurer beskrevet av andre kommandoer: linje, sirkel, rektangel, polylinje, spline. Men du kan også registrere en kommando for å bygge en projeksjon fra et 3D-skript.

Å lage 2D- eller 3D-figurer er bare en del av funksjonaliteten til GDL. Hvis du bare trenger et bord, er det lettere å bygge det med verktøyene til ARCHICAD selv. Et objekt skrives i tilfelle når det kreves en slags parametrisering: muligheten til å velge forskjellige typer bordben, antall ben, endre størrelse på bordet mens de gjenværende dimensjonene opprettholdes, beregne tømmeret for produksjon, vekt og pris. Objektet kan ikke inneholde noen geometri i det hele tatt, men bare utføre beregninger. For dette brukes også kontrollklausuler (kontrolloperatører), for eksempel sløyfer, betingede utsagn, med henvisning til et bestemt sted i koden (underrutine). Det er best å gjøre seg kjent med sykluser og forhold helt i begynnelsen - de brukes ofte. Så alle eksemplene nedenfor har betingede uttalelser. EKSEMPEL nr. 1 - objektrotasjon Designere vil ofte gjøre et objekt dreibart. Ved hjelp av dette enkle eksemplet vil vi se på strukturen til Library Item, så vel som hovedvinduene i GDL Object Editor. For å åpne et objekt som ligger i prosjektområdet (hvis utvikleren ikke har satt et passord på det), må du velge det og trykke på tastekombinasjonen Ctrl + Shift + O. En annen måte er å bruke Fil> Biblioteker og objekter> Åpne objekt-menyen. Hvis det for øyeblikket ikke er valgt noe objekt, åpnes et vindu for valg av objekt. La oss legge til rotasjonsparametere, for eksempel i et lamellgitter (fig. 1).

zooming
zooming

Så vi har åpnet GDL Object Editor-vinduet (fig. 2). Øverst til venstre er det et vindu for visning av forskjellige visninger, som i det vanlige vinduet med objektparametere; til og med til venstre er knapper for å velge visning - plan, høyde, 3D-vindu og forhåndsvisning. Nedenfor er det knapper for å åpne parametertabeller, datalister og skript. Manus kan åpnes på to måter: Klikk på knappen med navnet på skriptet - åpne i samme vindu, klikk på knappen til høyre med vinduikonet - skriptet åpnes i et eget vindu. Dette kan være nyttig for å se forskjellige skript samtidig (figur 3).

zooming
zooming

Øverst i vinduet i et hvilket som helst skript er det en veldig nødvendig sjekk-knapp: når du klikker på den, vil redaktøren be deg om det er noen feil i skriptet. Meldingen vil inneholde årsaken til feilen og linjenummeret der feilen ble funnet. I delen "Detaljer" kan du velge en objekttype: egendefinert dørblad, dørhåndtak, gardinvegger og så videre. Så spesielle objekter (penn, lerret, ramme) vises i det tilsvarende vinduet for valg av disse elementene. Når en 2D-type er valgt, vil objektet ikke ha noen vinduer for 3D-geometri. Der kan du også velge typer for forskjellige markører - en node, seksjoner, ledertekster, soner; de vil også vises i deres respektive verktøy. I denne delen kan du fylle ut en beskrivelse av objektet og velge et passord. Videre - "Parametere", der alle data som brukes i dette objektet og som kan endres mens du arbeider med prosjektet presenteres i form av en tabell. Her må vi legge til parametere for svingene, som vi vil bruke senere.

zooming
zooming

Trykk på Ny-knappen over tabellen (fig. 4). En ny rad vises der du må fylle ut kolonnene. Den første av disse kolonnene er variabel. Her skriver vi navnet på variabelen, som skal brukes i skript, på latin og uten mellomrom. Du må navngi det slik at det er lett å huske og samtidig er det lett å forstå hva denne variabelen er ansvarlig for. I vårt tilfelle må vi lage to variabler for verdien av rotasjonsvinklene langs X- og Y-aksene (objektet kan uansett roteres rundt Z-aksen rett i planen). Jeg bestemte meg for å kalle dem vinkel_x og vinkel_y. I neste kolonne må du velge datatypen. Valgene er presentert i tabell 1.

zooming
zooming

De to siste typene brukes ikke i konstruksjonen av objektet, men er nødvendig for å få større klarhet og orden på listen i objektparametervinduet. Vi trenger et hjørne - dette er det andre ikonet i tabellen. Den tredje kolonnen er Navn. Her kan du skrive uten regler på noe språk hva vi vil se senere i objektparametervinduet. Og den siste kolonnen er Verdi. Nå kan du legge igjen 0 her: denne verdien endres når som helst både i skriptet og i parameterne til selve objektet. Figur 2 viser hvordan de to nye alternativene ser ut i vinduet GDL Object Editor. 5. Bruk pilene i begynnelsen av linjen for å flytte linjen til et praktisk sted.

zooming
zooming

Deretter må du lagre objektet under et nytt navn, siden standardbiblioteket er hardkodet i beholderen, og du ikke kan overskrive objekter i det. Objektparametervinduet vil nå se slik ut (fig. 6).

zooming
zooming

Det er to nye parametere, hvis verdi kan endres når som helst. Men nå vil ingenting skje, siden ingen kommandoer ennå er skrevet med dem. Nå må du åpne 3D-skriptvinduet. Her er en komplett beskrivelse av hvordan du bygger en 3D-modell basert på de gitte parametrene. I tillegg kan forskjellige makroer nestes i objektet. Før alle konstruksjoner, må du rotere koordinatsystemet der objektet skal bygges. Her er det viktig å forstå følgende logikk: alle rotasjoner, bevegelser og skalering skjer annerledes enn når du arbeider i selve ARCHICAD. Vi tar ikke et element og roterer det, men roterer det globale koordinatsystemet (etter endring blir det lokalt) front bygge et objekt. Move (ADD Command), Rotate (ROT), Scale (MUL) er koordinatsystemtransformasjonskommandoer. Ytterligere transformasjoner kan slettes i skriptet en etter en, flere samtidig, eller slette alt på en gang. Referanseboken beskriver alt dette i tilstrekkelig detalj og med eksempler. Et eksempel på å flytte et koordinatsystem i 3D-rommet langs tre akser samtidig er vist i fig. 7. LEGG TIL a, b, c

zooming
zooming

Så før alle konstruksjonene, roterer vi koordinatsystemet, først langs en, deretter langs den andre aksen. Rotasjon langs X-aksen utføres av ROTX alphax-kommandoen, hvor alphax er mot urets rotasjonsvinkel; i stedet for alphax, må du oppgi en tidligere opprettet variabel. Rotasjonen langs Y-aksen utføres på samme måte (fig. 8).

zooming
zooming

Nå kan du stille forskjellige vinkler for rotasjon - og endringer i 3D-modellen vil finne sted i visningsfeltet øverst til venstre (fig. 9).

zooming
zooming

Nå kan du stille forskjellige vinkler for rotasjon - og endringer i 3D-modellen vil finne sted i visningsfeltet øverst til venstre (fig. 9). Men ingenting skjer i 2D ennå. I et 2D-skript bygges et objekt med separate linjer og polyliner, så tegningen av et objekt i plan er mange ganger raskere. På ett sted er dette umerkelig, men hvis det er hundrevis av slike nett i prosjektet, vil bremsingen være betydelig. Du kan beregne koordinatene til punktene til disse linjene og plotte dem slik de ser ut i projeksjonen til det roterte objektet, men dette er ikke veldig enkelt og ikke veldig raskt. I dette gitteret foreslår jeg følgende løsning: hvis vinklene i X eller Y ikke er lik null, blir objektet i 2D-skriptet, det vil si for planen, gjengitt som en projeksjon av 3D-modellen, og ellers på den gamle måten. Projeksjonen av modellen for et 2D-skript er bygd av PROJECT2 projection_code, angle, method command. Du kan lese hva projeksjonskode, vinkel, metode betyr i referanseboken, men vi vil bli kjent med den viktigere kommandoen fra delen av IF - THEN - ELSE - ENDIF kontrolluttalelser. Dette er betingede uttalelser som vil hjelpe deg med å bygge den betingede paragrafen fra forrige avsnitt. I fig. 10 Jeg har markert de tilføyde kommandoene i 2D-skriptet og lagt til "oversettelse" i rødt til høyre.

zooming
zooming

Nå trenger du bare å lagre objektet, og du kan bruke det (fig. 11). Fordelen med denne metoden over konvertering til morf er at objektet forblir parametrisk, det kan leses i spesifikasjonene, i det kan du endre dimensjonene på lamellene, størrelsen på rammen og alt annet som var i det opprinnelige objektet.

zooming
zooming

Så i detalj, ved å bruke dette eksemplet, undersøkte vi hovedvinduene og skriptene til GDL Object Editor. Hvis objektet du har valgt for rotasjon, har parametere ikke i form av en liste, som i dette gitteret, men i form av bilder og diagrammer, betyr dette at utvikleren også har skrevet et grafisk grensesnitt. Oftest er standardlisten med parametere skjult, som i fig. 12: Det er ingen seksjon "Alle parametere" i rullegardinlisten med parametersider.

zooming
zooming

I dette tilfellet må du gå inn i parameterskriptet og finne kommandoen som skjuler alle parametrene (fig. 13). Dette skriptet beskriver alle handlingene som påvirker parametrene: - betegnelse av alternativer eller områder av mulige verdier (VERDIER); - eventuelle beregninger, hvis resultat er tildelt parameteren (PARAMETERS); - skjule eller låse parametere (HIDEPARAMETER, LOCK).

zooming
zooming

Linjen HIDEPARAMETERS ALL kan bare slettes eller ved å sette et "!" I begynnelsen av linjen, gjør det uleselig (ifølge GDL-syntaks, regnes en linje som starter med et utropstegn som en kommentar. Videre vil jeg skrive beskrivelser oversettelser i skjermbildene etter "!" -tegnet). Etter det vises linjen "Alle parametere" i listen over parametersider, og ved å velge den, vil du se en standardliste med parametere, blant hvilke det vil være nye linjer for rotasjon. EKSEMPEL 2 - tekst på et symbol Jeg tar neste eksempel fra det aktuelle prosjektet. Når du arbeider med planen for en flerbolighets boligbygning, var det nødvendig å sette bokstaven "K" på utendørsenhetene til klimaanlegg - og slik at den alltid var plassert vertikalt. Selvfølgelig kunne brevet ganske enkelt ha blitt lagt til på toppen med tekst eller en ekstern inskripsjonstekst, men da, når klimaanlegget ble slått på, måtte teksten kanskje også flyttes. For å starte, la jeg til fire nye parametere (figur 14):

zooming
zooming

1. Vis tekst: parametertypen er en boolsk verdi, som innebærer to mulige verdier: 0 (nei) og 1 (ja). Dermed kan teksten slås på eller av.

2. Spesiell tekst: parametertype - tekst. Lar deg skrive hvilken som helst tekst i symbolet (jeg har tenkt å bruke en bokstav slik at den passer inn i rektangelet til klimaanlegget).

3. Font: skriv - tekst. Vær oppmerksom på at noen typer skriving av denne variabelen lar deg velge skriftverdier i kolonnen fra listen over de som er installert på datamaskinen. "Fonttype" kaller denne listen automatisk, men hvis jeg skriver "font" eller bare "font", så må jeg skrive navnet på fonten manuelt. Jeg la merke til dette øyeblikket ved en tilfeldighet i en av standardobjektene.

4. Tekstpenn: type - penn. Alt er klart her.

La oss nå se på ikonene jeg klikket på i begynnelsen av linjene. Den første linjen har et ikon trykket

Image
Image

som betyr fet - fet. Det vil si at denne linjen i objektparametervinduet vil være fet. De tre andre har et piktogram

Image
Image

… Det betyr at disse linjene vil være nestet i rullegardinlisten under første linje. I fig. 15 er et skjermbilde som illustrerer hvordan det ser ut i objektparametrene. For å starte, la jeg til fire nye parametere (Figur 15):

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

Og i fig. 16 - det jeg la til i et 2D-skript (tradisjonelt med oversettelse og kommentarer).

zooming
zooming

Fig. 16. Lagt til linjer i et 2D-skript I neste skjermbilde (fig. 17), for større klarhet, har jeg tonet forskjellige typer ord / kommandoer / variabler.

zooming
zooming

Objektet er klart (fig. 18).

zooming
zooming

Og hvis jeg ikke skrev linjer med rotasjon og skalering, ville objektet se ut som i fig. 19.

zooming
zooming

EKSEMPEL # 3 - detaljering For å forenkle arbeidet med et prosjekt, når du skriver et objekt, kan du legge til en tekstparameter med valg av flere alternativer for detaljering (enkel, middels, detaljert). Og i 3D-skriptet, når du bygger forskjellige små deler, legg til en tilstand av typen: hvis detaljnivået = "detaljert", fortjener (beskrivelse av bygningsdeler) slutten av tilstanden Globale variabler spesiell oppmerksomhet. De er 40 sider lange i referansehåndboken og er gruppert etter tema for enkel søk. I forrige eksempel brukte jeg noen objektorienteringsdata i prosjektet. Den samme delen av referansehåndboken inneholder globale variabler for koordinatene til objektplasseringen - de brukes til å lage objekter som en leder med koordinater eller høyder i en seksjon / høyde. Svært ofte brukes GLOB_SCALE - skalaen på tegningen (avhenger av utsikten i henhold til gjeldende vindu), på en skala fra 1: 100 er den lik 100, på en skala fra 1:20 er den lik 20. Den brukes oftest til å konvertere skriftstørrelsen til modellmålere eller omvendt. Denne parameteren kan også brukes til å "henge" visningsalternativene på planen. For eksempel, for en benk, skriv følgende i et 2D-skript:

HVIS GLOB_SCALE <100 DENNE ! hvis skalaen er større enn 1: 100, så
PROSJEKT 2 3, 270, 2 ! bygge en projeksjon fra en 3D-modell
ELLERS ! ellers
SLUTT OM ! slutten på tilstanden

Så på hovedplanen i målestokk 1: 500 vil benkene vises som rektangler, og på et fragment med større målestokk vil en detaljert projeksjon bli tegnet. En lignende teknikk, men for en tredimensjonal modell, brukes i standard trær - hvis du merker av for Automatisk krontype. I en viss avstand fra kameraet endres kronetypen fra detaljert til enkel, og fra enkel til ellips. Det er sant at for å kunne lese gjenstandsskriptene på nytt, må du gjøre noe med dem - for eksempel, etter å ha endret perspektivet, markert alle trærne, åpnet objektets parametervindu og uten å endre noe, bare klikk OK eller klikk og fjern merket for avmerkingsboksen for utskifting av deksel.

La meg vise det ved hjelp av eksemplet om tilnærming av en sfære. Her er hva jeg skrev i et 3D-skript: 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_ = 20 så res = 50 hvis discam20 så res = 20 hvis discam30 så res = 10 hvis discam> 40 så res = 5 resol res sfære 1 I skriptet brukte jeg de globale variablene GLOB_EYEPOS_X, GLOB_EYEPOS_Y, GLOB_EYEPOS_Z er koordinatene til plasseringen av kameraet (øynene) i 3D-vinduet til prosjektet og SYMB_POS_X, SYMB_POS_Y, SYMB_POS_Z er koordinatene til plasseringen av objektet i rommet; abs - nummermodul (fjerner "-", hvis noen); sqr - kvadratrot; ^ 2 - kvadrat et tall.

I 3D-vinduet, på forskjellige avstander fra kameraet, vil sfæren tegnes med forskjellige tilnærminger. For klarhetens skyld slo jeg på trådrammemodus (fig. 20).

zooming
zooming

Gjennom de globale variablene kan objektet motta: - data om prosjektets beliggenhet (nord, breddegrad, lengdegrad, høyde), angitt i den tilsvarende dialogboksen; - nåværende etasje og eget gulv; - typen av gjeldende visning (for eksempel i GOST-hoppere brukes følgende tilstand: hvis visningstypen er en liste, så bygg en visning av genseren i en seksjon med posisjonsledere); i eksemplet med et gitter kan du legge til følgende tilstand: Hvis visningstypen er en liste, så ikke roter koordinatsystemet, slik at det uansett vil være et frontbilde i listen over gitter; - ufullstendig visning av konstruksjoner (du kan gjøre at objektet ikke viser noen deler hvis bare kjernen er valgt).

Du kan dra veggdata inn i et vindu eller en dørobjekt. Visningsforklaringer kan få mye forskjellig informasjon om elementet som de er knyttet til, for eksempel en avkrysningsrute med lag av en flerlagsstruktur eller en leder med et volum av et element. Og så videre, 40 sider med forskjellige og veldig nyttige globale variabler. EKSEMPEL 4 - sonemarkør La oss ta en titt på hvordan en tilpasset sonemarkør blir opprettet. Hvis du oppretter et nytt objekt og velger sonetypeportypen for det i Detaljer-delen, vises i Parameters-delen alle de spesifikke parametrene som Zone-verktøyet sender til markøren, i blått (Fig. 21).

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

Ved hjelp av TEXT2-kommandoen kan du skrive hvilken som helst av disse variablene i et 2D-skript - slik får du en markør som bare består av tekst (fig. 22).

zooming
zooming

Ved å bruke de generelle parametrene til sonemarkøren kan du definere tekststil og linjehøyde avhengig av skrifthøyde: DEFINER STIL “RUM” AC_TextFont_1, ROOM_LSIZE, 5.0 STIL”ROOM” rad = ROOM_LSIZE / 1000 * GLOB_SCALE * 1,5 tekst2 0 rad, ROOM_NUMBER text2 0, 0, ROOM_NAME text2 0, -row, ROOM_AREA Du kan opprette en ny parameter for å velge type markør (Fig. 23), angi alternativer for den i Parameterskriptet (Fig. 24) og i 2D-skript skriver forskjellige typer markørgjengivelse for forskjellige typer.

zooming
zooming
zooming
zooming

2D-skript: hvis mt = "markør med nummer" så tekst2 0, 0, ROMNUMMER SIRKEL2 0,0, rad endif hvis mt = "nummer og areal", så tekst2 0, rad / 2, RUMOMNUMMER tekst2 0, -row / 2 AREA_TEXT endif hvis mt = "tittel og område" deretter text2 0, rad / 2, ROOM_NAME text2 0, -row / 2, AREA_TEXT endif hvis mt = "nummer, tittel og område" så tekst2 0, rad, ROOM_NUMBER tekst2 0, 0, ROOM_NAME text2 0, -row, AREA_TEXT endif if mt = "area only" then text2 0, 0, AREA_TEXT endif I dette skriptet brukte jeg ikke den forhåndsdefinerte områdevariabelen som et område, men konverterte området til tekst og ble lagt til det enheter: area = str (ROOM_AREA, 4, 2)! konvertere et tall til tekst med 2 desimaler AREA_TEXT = areal + "kvm." ! legge til strengverdien bokstavene "kvm." Du kan supplere linjene i markøren med linjer som skiller noen linjer. For å finne lengden på en streng, bruk STW-kommandoen. La oss legge til i begynnelsen av skriptet: tl1 = stw (ROOM_NUMBER) / 1000 * GLOB_SCALE tl2 = stw (ROOM_NAME) / 1000 * GLOB_SCALE tl3 = stw (AREA_TEXT) / 1000 * GLOB_SCALE hvis mt = "antall og areal" så tl = MAX (tl1, tl3) hvis mt = “nummer, tittel og område” så tl = MAX (tl1, tl2) hvis mt = “tittel og område” så tl = MAX (tl2, tl3) hvis mt = “bare område” da tl = tl3 OG i varianter av markører, legg til linjene med LINE2-kommandoen (fig. 25).

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

Hvis sonenummeret består av flere sifre, for markøren, kan du opprette en parameter for radiusen til en sirkel, uavhengig av skriftens høyde, eller i stedet for en sirkel, beskrive en ellipselignende form med en lengde lik lengden av sonenummerlinjen som vi fant tidligere: POLY2_ 5, 1 + 2 + 4, -tl1 / 2, rad, 1, tl1 / 2, rad, 1, tl1 / 2, -row, 1001, -tl1 / 2, -row, 1, -tl1 / 2, row, 1001 Du kan legge til en ny parameter for gulvetype (FLOOR_TYPE) og en parameter som lar deg skjule eller vise den (ShowFloorType), og i et 2D-skript legge til en trekant med en polylinje og tekst med gulvetype: hvis ShowFloorType deretter ADD2 0, rad * 3 POLY2_ 4, 1, -row * 1.4, -row * 0.8, 1, row * 2.8,60,201, row * 1.4, -row * 0.8, 1, 0,0,700 tekst2 0,0, FLOOR_TYPE endif For gulvetypen er det ønskelig å legge til en egen parameter for pennen, samt poeng for grafisk redigering av plasseringen av gulvmarkøren. Jeg beskrev i detalj hvordan du legger til grafiske redigeringspunkter i webinaret mitt, og ved hjelp av lenken på slutten av artikkelen kan du laste ned objekter og se hvordan dette blir implementert i dette tilfellet.

Og til slutt, la oss vurdere en annen veldig viktig undertype av et objekt som åpner for store muligheter - de globale parametrene til biblioteket (fig. 26).

zooming
zooming

Et objekt med denne undertypen bygger eller tegner ikke noe, det definerer parametere i modellvisninger. Dermed kan du ta ut de parametrene du vil se felles for objektet, men samtidig kunne sette forskjellige verdier for forskjellige typer.

Jeg skal vise dette med et eksempel på en sonemarkør. Jeg kom over prosjekter der det var flere sett med soner i forskjellige lag for forskjellige visninger. Hvis det er behov for forskjellige markører, er bibliotekets globale parametere den beste løsningen.

Jeg har en markør der det er mulig å stille inn gulvetypen i en trekant og endre merketypen (fig. 27). Og disse to parametrene flyttes til en egen fil av subtypen Global Library Parameters (fig. 28).

zooming
zooming
zooming
zooming

For at disse parameterne skal vises i dialogboksen Model View Parameters, må du registrere dem i objektgrensesnittskriptet (fig. 29). Jeg vil ikke dvele i detalj med spesialkommandoene for dette skriptet, de er beskrevet i tilstrekkelig detalj og med eksempler i referanseboken. Jeg vil bare si at her beskriver vi hvor denne eller den andre etiketten eller knappen vil være plassert (et felt med et utvalg av alternativer, en hake, etc.), bilder kan også settes inn i brukergrensesnittet. I standardbiblioteket har nesten alle objekter et grafisk grensesnitt; du kan se alle mulighetene og se hvordan disse manusene er skrevet. I tillegg til Sjekk-knappen har skriptet også en Vis-knapp. Ved å klikke på den kan du raskt se hva som skjer.

zooming
zooming

Du kan lagre objektet og se det i dialogboksen Alternativer for modellvisning (Figur 30). Her kan vi endre merketypen på en gang for alle soner i prosjektet (med denne markøren), men separat for forskjellige typer.

zooming
zooming

Nå, i sonemarkørobjektet, må du spørre objektet for verdiene til disse to parametrene. I hovedskriptet (som leses av objektet først, så alle beregninger og definisjoner av verdier som skal brukes i flere skript, er det bedre å skrive her) skriver jeg to linjer slik: suksess1 = LIBRARYGLOBAL ("LibraryGlobals20 "," ShowFloorType ", ShowFloorType) success2 = LIBRARYGLOBAL (" LibraryGlobals20 "," mt ", mt)" suksess "vil være 1 hvis forespørselen er vellykket; ellers blir det 0.

Dette kan brukes til å skrive en advarsel i stedet for en sonemarkør om at LibraryGlobals20-objektet ikke er lastet inn i biblioteket.

Så fungerer objektet som vanlig, ved å bruke to nye verdier: Hvis typen markering er slik og så, skriv så og så videre, og så videre. I denne artikkelen har jeg dekket bare en liten del av funksjonene til GDL. Med hjelpen kan du lage både veldig enkle designelementer og svært komplekse objekter.

For eksempel har du å gjøre med små og enkle SIP-panelhus. Du har en spesifikk liste over alternativer for å endre prosjektet: - Husets lengde og bredde kan være fra 2,4 til 24 meter med et trinn på 1,2 m; - hvis bredden overstiger 6 m, bør det være en annen vegg i midten; - to muligheter for gulvhøyder avhengig av panelstørrelse; - antall etasjer - en eller to etasjer; - vinduer kan være på visse steder av paneler av en viss størrelse; - etterbehandling av fasader i tre versjoner; - taktekking i tre versjoner; - veggtykkelse av flere standardstørrelser og så videre.

Du kan angi alle disse parametrene for objektet ved å legge til kostnaden per kvadratmeter for panelet, taket, dekorasjonen, etc. Og i 2D- og 3D-skript av objektet, bygg og tegne dette huset helt med variabler i stedet for statiske dimensjoner. For at brukeren ikke skal bli forvirret i en lang liste med parametere, kan du skrive et grafisk grensesnitt for flere sider med bilder og diagrammer. I hovedskriptet beregner du alle volumene og viser kostnaden. Det er også mulig å vise en tabell med utformingen av panelene i et 2D-skript ved siden av planen. Å skrive et slikt objekt vil ta mye tid, du må lage en detaljert teknisk spesifikasjon, sørge for alle nyanser, men da vil du ikke bare motta et objekt, men nesten et program der du, ved å velge parametere, kan få et sett med et utkast til design med en beregning av materialer og kostnader for kunden. Forhåpentligvis har denne oversikten vekket noens interesse for GDLs evner. Historien min begynte med et sterkt ønske om å endre noen små detaljer i noen standard sonemarkører, og jo mer jeg leser guiden, desto mer blir potensialet til dette verktøyet, etter min mening, veldig nyttig for en arkitekt, avslørt. Fra lenken nedenfor kan du laste ned alle objektene som ble sett på som eksempler i denne artikkelen: Last ned eksempler Merk. ARCHICAD 20 ble brukt til å skrive disse objektene, slik at de ikke åpnes i tidligere versjoner. Om GRAPHISOFT GRAPHISOFT-selskapet® revolusjonerte BIM i 1984 med ARCHICAD® Er bransjens første BIM-løsning for arkitekter i CAD-bransjen. GRAPHISOFT fortsetter å lede markedet for arkitektonisk programvare med innovative produkter som BIMcloud ™, verdens første sanntids samarbeidende BIM-designløsning, EcoDesigner ™, verdens første fullintegrerte energimodellering og energieffektivitetsvurdering av bygninger og BIMx® Er den ledende mobilappen for fremvisning og presentasjon av BIM-modeller. Siden 2007 har GRAPHISOFT vært en del av Nemetschek Group.

Anbefalt: