ARCHICAD: REVEALING GDL: Programmeren Voor De Unieke Uitdagingen Van Architecten

ARCHICAD: REVEALING GDL: Programmeren Voor De Unieke Uitdagingen Van Architecten
ARCHICAD: REVEALING GDL: Programmeren Voor De Unieke Uitdagingen Van Architecten

Video: ARCHICAD: REVEALING GDL: Programmeren Voor De Unieke Uitdagingen Van Architecten

Video: ARCHICAD: REVEALING GDL: Programmeren Voor De Unieke Uitdagingen Van Architecten
Video: GDL 1 2024, April
Anonim

Dit deskundige materiaal vormt een voortzetting van de reeks artikelen "ARCHICAD: Rediscovering", die begon in december 2016 met een artikel van Vladimir Savitsky "Creatie van structuren en extractie van werktekeningen naar een model", en ging vervolgens verder met de publicaties van Svetlana Kravchenko "ARCHICAD: Her-ontdekken. Visualisatie - nieuwe kansen voor een architect "en Alexander Anishchenko" TEAMWORK: effectief teamwork stap voor stap ". De cyclus is ontworpen om gebruikers te helpen het volledige potentieel van ARCHICAD te benutten®We vroegen de architecten om hun persoonlijke ervaring te delen met het gebruik van het programma met behulp van niet-standaard benaderingen, weinig bestudeerde functies en nieuwe functies waarvan veel gebruikers zich misschien niet eens bewust zijn. Als ontwikkelaars van de ARCHICAD-applicatie zijn we ervan overtuigd dat alleen een grondige kennis van het product de volledige waarde ervan kan onthullen en een beslissende invloed kan hebben op de resultaten, snelheid en kwaliteit van het werk van de ontwerper. Geeft u ook de voorkeur aan "onbetreden paden"? Heeft u ervaring met het gebruik van niet-standaard benaderingen bij het werken met ARCHICAD, gebruikt u regelmatig niet de meest bekende functies van de applicatie? We nodigen graag nieuwe auteurs uit voor samenwerking: [email protected]. Svetlana Kravchenko, een praktiserend architect, rapporteert:

zoomen
zoomen

Velen van jullie hebben vast wel eens gehoord over GDL in ARCHICAD, maar niet iedereen weet nog hoe het op het werk moet worden gebruikt. Gezien het ongelooflijke nut van deze functie, evenals de vele vragen na mijn eerste webinar over dit onderwerp, besloot ik meer in detail te gaan over hoe zelfs de kleinste kennis ervan veel kan helpen bij het dagelijkse werk van een architect.

Laten we beginnen met de basis GDL (Geometric Description Language) is een BASIC-achtige programmeertaal die is ontworpen om te werken in de ARCHICAD-omgeving. Het beschrijft 3D-vaste lichamen (zoals deuren, ramen, meubels) en 2D-symbolen in het plattegrondvenster. Deze objecten worden bibliotheekfuncties genoemd.

Voor degenen die op zijn minst een beetje bekend zijn met programmeren, zal het beheersen van deze taal niet moeilijk zijn. Met voldoende verlangen zal de studie van GDL echter behoorlijk binnen de macht liggen van een persoon die ver verwijderd is van deze omgeving. Elke architect heeft in zijn tijd geometrie en beschrijvende meetkunde bestudeerd, heeft een uitstekend volumetrisch denken, en dit is al de helft van het succes. U hoeft niet meteen te proberen complexe objecten te schrijven, het is de moeite waard om te beginnen met de geometrische basisvormen en -vormen; er kan veel informatie worden verzameld door de scripts van andere bibliotheekitems te bekijken. Welnu, de belangrijkste informatiebron is de GDL-referentiehandleiding, die toegankelijk is via het Help-menu in ARCHICAD zelf. Dus waarom kan een architect profiteren van kennis van GDL? In tegenstelling tot Grasshopper, waarmee u bijvoorbeeld complexe structuren kunt maken, is GDL eenvoudigweg onmisbaar voor het schrijven van verschillende markeringen en callouts, maar ook voor het maken van speciale componenten voor andere bibliotheekfuncties of tools. Een van mijn eerste toepassingen van GDL in mijn werk was het maken van een speciaal paneeldeurblad, dat, wanneer het formaat werd gewijzigd, niet in alle richtingen schaalde, maar alleen de paneelafmetingen veranderde. De dikte van het gekrulde frame en de breedte van het harnas bleven ongewijzigd. Ook willen architecten heel vaak enkele eenvoudige functies toevoegen aan bestaande objecten van de standaardbibliotheken - en dit is de belangrijkste reden waarom ze zich in GDL beginnen te verdiepen. Kennis van GDL is natuurlijk niet essentieel, en veel van deze taken kunnen worden uitgevoerd met standaardtools. U kunt bijvoorbeeld vullingen met platen construeren en deze opslaan als een speciaal deurblad. Als u maar een paar van deze niet-standaard deuren heeft, gaat dit nog sneller. Maar als er in uw project veel vergelijkbare deuren van verschillende afmetingen zijn en hun breedte verandert tijdens het werk, dan zal het schrijven van een speciaal paneel in GDL het werk aanzienlijk versnellen en vereenvoudigen. Geometrische beschrijving houdt in dat elk van de mogelijke vormen in tekst kan worden geschreven volgens afmetingen of coördinaten. Voor een 3D-script is er een blok opdrachten voor ruimtelijke basisvormen, zoals: - BLOKKEREN en STEEN - een parallellepipedum geconstrueerd in drie dimensies met de oorsprong op punt 0 van het coördinatensysteem BLOK a, b, c BAKSTEEN a, b, c

zoomen
zoomen

- CILIND - cilinder langs de Z-as, met hoogte h en straal r CILIND h, r

- GEBIED - bol gecentreerd op de oorsprong en straal r GEBIED r

zoomen
zoomen

Een ellips en een kegel worden op dezelfde manier beschreven. Het volgende blok met figuren is al ingewikkelder - dit zijn verschillende prisma's. Ze worden beschreven door een reeks puntcoördinaten. Het eenvoudigste prisma wordt bepaald door het aantal punten (n), hoogte (h) en de coördinaten van alle punten op volgorde. PRISM n, h, x1, y1, … xn, yn

Er zijn veel soorten prisma's. De volgende weergave, PRISMA_, stelt u in staat om statuscodes aan de coördinaten van punten aan te geven, die de zichtbaarheid van vlakken en randen bepalen, en stelt u ook in staat om gebogen prisma's en prisma's met gaten te creëren (zie de sectie Statuscodes in het naslagwerk). Nog een soort, BPRISM_, creëert een prisma dat rond de Y-as is gedraaid. FPRISM_ bouwt een prisma met een afschuining of filet aan de bovenzijde.

zoomen
zoomen

Er zijn verschillende opdrachten die complexere vormen op basis van polylijnen beschrijven: EXTRUDE, PIRAMIDE, DRAAIEN, GEREGELD, VEGEN, TUBE, COONS, MASS. Hun beschrijving met voorbeelden is te vinden in de referentie. Voor een 2D-script worden vormen beschreven door andere opdrachten: lijn, cirkel, rechthoek, polylijn, spline. Maar u kunt ook een commando registreren om een projectie op te bouwen vanuit een 3D-script.

Het maken van 2D- of 3D-vormen is slechts een deel van de functionaliteit van GDL. Als je alleen een tafel nodig hebt, dan is het gemakkelijker om deze te bouwen met de tools van ARCHICAD zelf. Een object wordt geschreven in het geval dat een soort parametricisme vereist is: de mogelijkheid om verschillende soorten tafelpoten te selecteren, het aantal poten, het formaat van de tafel te wijzigen met behoud van de resterende afmetingen, het hout te berekenen voor de fabricage, het gewicht en de kosten. Het object mag helemaal geen geometrie bevatten, maar alleen berekeningen uitvoeren. Hiervoor worden ook Control Clauses (Control Operators) gebruikt, zoals loops, conditionele statements, verwijzend naar een specifieke plaats in de code (subroutine). Het is het beste om vanaf het begin vertrouwd te raken met cycli en omstandigheden - ze worden vaak gebruikt. Alle onderstaande voorbeelden hebben dus voorwaardelijke uitspraken. VOORBEELD # 1 - objectrotatie Ontwerpers willen een object vaak draaibaar maken. Aan de hand van dit eenvoudige voorbeeld zullen we de structuur van het bibliotheekitem bekijken, evenals de hoofdvensters van de GDL-objecteditor. Om een object in de projectruimte te openen (als de ontwikkelaar er geen wachtwoord op heeft gezet), moet u het selecteren en op de toetsencombinatie Ctrl + Shift + O drukken. Een andere manier is om het menu Bestand> Bibliotheken en objecten> Object openen te gebruiken. Als er op dit moment geen object is geselecteerd, wordt een venster geopend om een object te selecteren. Laten we bijvoorbeeld rotatieparameters toevoegen aan een jaloezie-rooster (afb. 1).

zoomen
zoomen

Daarom hebben we het venster GDL Object Editor geopend (Fig. 2). Linksboven is er een venster voor het bekijken van verschillende weergaven, zoals in het gebruikelijke venster met objectparameters; zelfs links bevinden zich knoppen voor het kiezen van een weergave - plattegrond, aanzicht, 3D-venster en voorbeeld. Hieronder vindt u knoppen voor het openen van parametertabellen, datalijsten en scripts. Scripts kunnen op twee manieren worden geopend: klik op de knop met de naam van het script - open in hetzelfde venster, klik op de knop rechts met het vensterpictogram - het script wordt in een apart venster geopend. Dit kan handig zijn om verschillende scripts tegelijkertijd te zien (Afbeelding 3).

zoomen
zoomen

Bovenaan het venster van elk script is er een zeer noodzakelijke Check-knop: wanneer u erop klikt, zal de editor u vragen of er fouten in het script zitten. Het bericht bevat de reden voor de fout en het regelnummer waar de fout is gevonden. In het gedeelte "Details" kunt u een objectsubtype selecteren: aangepast deurblad, deurknop, vliesgevelkader, enzovoort. Er verschijnen dus speciale objecten (pen, canvas, frame) in het overeenkomstige venster om deze elementen te selecteren. Als een 2D-type is geselecteerd, heeft het object geen vensters voor 3D-geometrie. Daar kunt u ook typen voor verschillende markeringen selecteren - een knooppunt, secties, bijschriften van aanwijzers, zones; ze verschijnen ook in hun respectievelijke tools. In deze sectie kunt u een beschrijving van het object invullen en een wachtwoord selecteren. Verder - "Parameters", waar alle gegevens die in dit object worden gebruikt en die kunnen worden gewijzigd tijdens het werken aan het project, worden gepresenteerd in de vorm van een tabel. Hier moeten we parameters voor de beurten toevoegen, die we later zullen gebruiken.

zoomen
zoomen

Druk op de knop Nieuw boven de tafel (Afb. 4). Er verschijnt een nieuwe rij waarin u de kolommen moet invullen. De eerste van deze kolommen is Variabel. Hier schrijven we de naam van de variabele, die zal worden gebruikt in scripts, in het Latijn en zonder spaties. U moet het een naam geven zodat het gemakkelijk te onthouden is en tegelijkertijd gemakkelijk te begrijpen is waarvoor deze variabele verantwoordelijk is. In ons geval moeten we twee variabelen maken voor de waarde van de rotatiehoeken langs de X- en Y-assen (het object kan hoe dan ook rechts in het plan om de Z-as worden geroteerd). Ik besloot ze angle_x en angle_y te noemen. In de volgende kolom moet u het gegevenstype selecteren. De keuzes zijn weergegeven in tabel 1.

zoomen
zoomen

De laatste twee typen worden niet gebruikt bij de constructie van het object, maar zijn nodig voor meer duidelijkheid en overzichtelijkheid van de lijst in het objectparametersvenster. We hebben een hoek nodig - dit is het tweede pictogram in de tabel. De derde kolom is Naam. Hier kunt u zonder regels in elke taal schrijven wat we later precies in het objectparametersvenster willen zien. En de laatste kolom is Waarde. Nu kunt u hier 0 achterlaten: deze waarde verandert op elk moment zowel in het script als in de parameters van het object zelf. Figuur 2 laat zien hoe de twee nieuwe opties eruitzien in het GDL Object Editor-venster. 5. Gebruik de pijlen aan het begin van de lijn om de lijn naar een handige locatie te verplaatsen.

zoomen
zoomen

Vervolgens moet u het object onder een nieuwe naam opslaan, aangezien de standaardbibliotheek hard in de container is gecodeerd en u de objecten erin niet kunt overschrijven. Het venster Objectparameters ziet er nu als volgt uit (Afb. 6).

zoomen
zoomen

Er zijn twee nieuwe parameters, waarvan de waarde op elk moment kan worden gewijzigd. Maar nu gebeurt er niets, aangezien er nog geen commando's zijn geschreven. Nu moet u het 3D-scriptvenster openen. Hier is een volledige beschrijving van hoe u een 3D-model kunt bouwen op basis van de opgegeven parameters. Bovendien kunnen verschillende macro's in het object worden genest. Voordat u met alle constructies begint, moet u het coördinatensysteem roteren waarin het object zal worden gebouwd. Hier is het belangrijk om de volgende logica te begrijpen: alle rotaties, bewegingen en schaalvergroting gebeuren anders dan wanneer u in ARCHICAD zelf werkt. We nemen een element niet en roteren het, maar roteren het globale coördinatensysteem (na het veranderen wordt het lokaal) voorkant een object bouwen. Move (ADD Command), Rotate (ROT), Scale (MUL) zijn transformatieopdrachten voor coördinatensystemen. Verdere transformaties kunnen een voor een, meerdere tegelijk of allemaal tegelijk in het script worden verwijderd. Het naslagwerk beschrijft dit alles voldoende gedetailleerd en met voorbeelden. Een voorbeeld van het tegelijkertijd verplaatsen van een coördinatensysteem in de 3D-ruimte langs drie assen wordt getoond in Fig. 7. VOEG a, b, c toe

zoomen
zoomen

Dus, vóór alle constructies, roteren we het coördinatensysteem, eerst langs de ene en vervolgens langs de andere as. Rotatie langs de X-as wordt uitgevoerd door de ROTX alphax-opdracht, waarbij alphax de rotatiehoek tegen de klok in is; in plaats van alphax, moet u een eerder gemaakte variabele invoeren. De rotatie langs de Y-as wordt op dezelfde manier uitgevoerd (Fig. 8).

zoomen
zoomen

Nu kunt u verschillende hoeken instellen voor rotatie - en wijzigingen in het 3D-model vinden plaats in de viewport linksboven (Fig. 9).

zoomen
zoomen

Nu kunt u verschillende hoeken instellen voor rotatie - en wijzigingen in het 3D-model vinden plaats in de viewport linksboven (Fig. 9). Maar er gebeurt nog niets in 2D. In een 2D-script wordt een object gebouwd met aparte lijnen en polylijnen, waardoor het tekenen van een object in plan vele malen sneller gaat. Op de ene site is dit onmerkbaar, maar als er honderden van dergelijke roosters in het project zijn, zal het remmen aanzienlijk zijn. U kunt de coördinaten van de punten van deze lijnen berekenen en ze plotten zoals ze eruit zouden zien in de projectie van het geroteerde object, maar dit is niet erg eenvoudig en niet erg snel. In dit rooster stel ik de volgende oplossing voor: als de hoeken in X of Y niet gelijk zijn aan nul, dan wordt het object in het 2D-script, dat wil zeggen voor het plan, weergegeven als een projectie van het 3D-model, en anders op de oude manier. De projectie van het model voor een 2D-script wordt gebouwd met het PROJECT2-commando projection_code, angle, method. Je kunt lezen wat projection_code, angle, method betekenen in het naslagwerk, maar we zullen kennis maken met het belangrijkere commando uit de sectie van IF - THEN - ELSE - ENDIF control statements. Dit zijn voorwaardelijke verklaringen die u zullen helpen bij het opbouwen van de voorwaardelijke clausule uit de vorige alinea. In Afb. 10 Ik heb de toegevoegde opdrachten in het 2D-script gemarkeerd en aan de rechterkant "vertaling" in rood toegevoegd.

zoomen
zoomen

Nu hoeft u alleen het object op te slaan en u kunt het gebruiken (Afb. 11). Het voordeel van deze methode ten opzichte van conversie naar morph is dat het object parametrisch blijft, het kan worden gelezen in de specificaties, hierin kun je de afmetingen van de lamellen, de grootte van het frame en al het andere dat in het originele object zat, wijzigen.

zoomen
zoomen

Dus in detail hebben we aan de hand van dit voorbeeld de hoofdvensters en scripts van de GDL Object Editor onderzocht. Als het object dat je hebt gekozen voor rotatie parameters heeft, niet in de vorm van een lijst, zoals in dit rooster, maar in de vorm van plaatjes en diagrammen, betekent dit dat de ontwikkelaar ook een grafische interface heeft geschreven. Meestal is de standaardlijst met parameters verborgen, zoals in Fig. 12: Er is geen sectie "Alle parameters" in de vervolgkeuzelijst met parameterpagina's.

zoomen
zoomen

In dit geval moet u naar het parameterscript gaan en de opdracht zoeken die alle parameters verbergt (Afb. 13). Dit script beschrijft alle acties die van invloed zijn op de parameters: - aanduiding van opties of bereiken van mogelijke waarden (WAARDEN); - alle berekeningen waarvan het resultaat wordt toegewezen aan de parameter (PARAMETERS); - parameters verbergen of vergrendelen (HIDEPARAMETER, LOCK).

zoomen
zoomen

De regel HIDEPARAMETERS ALL kan eenvoudig worden verwijderd of door een "!" Aan het begin van de regel te plaatsen, deze onleesbaar maken (volgens de syntaxis van GDL wordt een regel die begint met een uitroepteken als commentaar beschouwd. Verder zal ik beschrijvingen schrijven en vertalingen in de schermafbeeldingen na het "!" -teken). Daarna verschijnt de regel "Alle parameters" in de lijst met parameterpagina's, en door deze te selecteren, ziet u een standaardlijst met parameters, waaronder nieuwe regels voor rotatie. VOORBEELD # 2 - tekst op een symbool Ik neem het volgende voorbeeld uit het huidige project. Bij het werken met het plan van een woongebouw met meerdere appartementen, was het vereist om de letter "K" op de buitenunits van airconditioners te plaatsen - en zodat deze altijd verticaal was geplaatst. Natuurlijk had de letter er gewoon bovenop kunnen staan met tekst of een externe inscriptie-tekst, maar toen de airconditioner werd gedraaid, had de tekst misschien ook moeten worden verplaatst. Om te beginnen heb ik vier nieuwe parameters toegevoegd (Afbeelding 14):

zoomen
zoomen

1. Show text: het parametertype is een booleaanse waarde, wat twee mogelijke waarden inhoudt: 0 (nee) en 1 (ja). Zo kan de tekst worden in- of uitgeschakeld.

2. Speciale tekst: parametertype - tekst. Hiermee kunt u een willekeurige tekst in het symbool schrijven (ik ben van plan één letter te gebruiken zodat deze in de rechthoek van het airconditionerblok past).

3. Lettertype: type - tekst. Houd er rekening mee dat bij sommige typen schrijven van deze variabele u lettertypewaarden in de kolom kunt selecteren uit de lijst met de op de computer geïnstalleerde waarden. "Fonttype" roept deze lijst automatisch op, maar als ik "typefont" of gewoon "font" schrijf, dan moet ik de naam van het font handmatig schrijven. Ik merkte dit moment bij toeval op in een van de standaardobjecten.

4. Tekstpen: type - pen. Alles is hier duidelijk.

Laten we nu eens kijken naar de pictogrammen waarop ik aan het begin van de regels heb geklikt. Op de eerste regel is een pictogram gedrukt

Image
Image

wat vet - vet betekent. Dat wil zeggen, deze regel in het objectparametersvenster zal vetgedrukt zijn. De andere drie hebben een pictogram

Image
Image

Dit betekent dat deze regels worden genest in de vervolgkeuzelijst onder de eerste regel. In Afb. 15 is een screenshot dat illustreert hoe het eruit ziet in de Object Parameters. Om te beginnen heb ik vier nieuwe parameters toegevoegd (Afbeelding 15):

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

En in fig. 16 - wat ik heb toegevoegd in een 2D-script (traditioneel met vertaling en commentaar).

zoomen
zoomen

Afb. 16. Regels toegevoegd in een 2D-script In de volgende schermafbeelding (Afb. 17) heb ik voor meer duidelijkheid verschillende soorten woorden / commando's / variabelen getint.

zoomen
zoomen

Het object is klaar (afb. 18).

zoomen
zoomen

En als ik geen regels zou schrijven met rotatie en schaalvergroting, dan zou het object eruit zien als in Fig. 19.

zoomen
zoomen

VOORBEELD # 3 - detaillering Om het werken aan een project te vereenvoudigen, kunt u bij het schrijven van een object een tekstparameter toevoegen met een keuze uit verschillende opties voor detaillering (eenvoudig, gemiddeld, gedetailleerd). En voeg in het 3D-script bij het bouwen van verschillende kleine onderdelen een voorwaarde toe van het type: als het detailniveau = "gedetailleerd", dan verdient (beschrijving van bouwdelen) het einde van de voorwaarde Globale Variabelen speciale aandacht. Ze zijn 40 pagina's lang in de referentiehandleiding en zijn gegroepeerd op onderwerp om gemakkelijk te kunnen zoeken. In het vorige voorbeeld heb ik enkele objectoriëntatiegegevens in het project gebruikt. Dezelfde sectie van de referentiehandleiding bevat globale variabelen voor de coördinaten van de objectlocatie - ze worden gebruikt om objecten te creëren zoals een leider met coördinaten of verhogingen op een sectie / hoogte. Heel vaak wordt GLOB_SCALE gebruikt - de schaal van de tekening (hangt af van het aanzicht volgens het huidige venster), op een schaal van 1: 100 is het gelijk aan 100, op een schaal van 1:20 is het gelijk aan 20. Het wordt meestal gebruikt om de lettergrootte om te zetten in modelmeters of omgekeerd. Deze parameter kan ook worden gebruikt om weergave-opties aan het plan "op te hangen". Schrijf bijvoorbeeld voor een bank het volgende in een 2D-script:

ALS GLOB_SCALE <100 DAN als de schaal groter is dan 1: 100, dan
PROJECT2 3, 270, 2 bouw een projectie van een 3D-model
ANDERS anders-
STOP ALS einde van de toestand

Dus op het masterplan op schaal 1: 500 worden de banken weergegeven als rechthoeken en op een fragment met een grotere schaal wordt een gedetailleerde projectie getekend. Een vergelijkbare techniek, maar voor een driedimensionaal model, wordt gebruikt in hoogstammen - als u het selectievakje Automatisch kroontype inschakelt. Op een bepaalde afstand van de camera verandert het kroontype van gedetailleerd naar eenvoudig en van eenvoudig naar ellips. Toegegeven, om de scripts van het object opnieuw te lezen, moet u er iets mee doen - bijvoorbeeld nadat u het perspectief hebt gewijzigd, alle bomen hebt gemarkeerd, het parametervenster van het object opent en, zonder iets te wijzigen, op OK klikt, of klik op en schakel het selectievakje voor het vervangen van de omslag uit.

Ik zal het laten zien aan de hand van het voorbeeld van het benaderen van een bol. Dit is wat ik schreef in een 3D-script: 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) = 20 then res = 50 if discam20 then res = 20 if discam30 then res = 10 if discam> 40 then res = 5 resol res bol 1 In het script gebruikte ik de globale variabelen GLOB_EYEPOS_X, GLOB_EYEPOS_Y, GLOB_EYEPOS_Z zijn de coördinaten van de locatie van de camera (ogen) in het 3D-venster van het project en SYMB_POS_X, SYMB_POS_Y, SYMB_POS_Z zijn de coördinaten van de locatie van het object in de ruimte; abs - number module (verwijdert "-", indien aanwezig); sqr - vierkantswortel; ^ 2 - een getal kwadrateren.

In het 3D-venster, op verschillende afstanden van de camera, wordt de bol met verschillende benaderingen getekend. Voor de duidelijkheid heb ik de draadmodelmodus ingeschakeld (Afb. 20).

zoomen
zoomen

Via de globale variabelen kan het object: - gegevens ontvangen over de locatie van het project (noorden, breedtegraad, lengtegraad, hoogte), ingesteld in het overeenkomstige dialoogvenster; - huidige verdieping en eigen verdieping; - het type van de huidige weergave (bijvoorbeeld in de GOST-jumpers wordt de volgende voorwaarde gebruikt: als het weergavetype een lijst is, bouw dan een weergave van de jumper in een sectie met positieleiders); in het voorbeeld met een rooster kunt u de volgende voorwaarde toevoegen: als het type weergave een lijst is, draai dan het coördinatensysteem niet, zodat er in ieder geval een frontaal aanzicht zou zijn in de lijst met roosters; - onvolledige weergave van constructies (u kunt ervoor zorgen dat het object sommige onderdelen niet laat zien als alleen de kern is geselecteerd).

U kunt muurgegevens naar een raam- of deurobject slepen. Callouts kunnen veel verschillende informatie krijgen over het element waarmee ze zijn geassocieerd, bijvoorbeeld een selectievakje met lagen van een meerlaagse structuur of een leider met een volume van een element. En ga zo maar door, 40 pagina's met verschillende en zeer nuttige Global Variables. VOORBEELD 4 - zonemarkering Laten we eens kijken hoe een aangepaste zonemarkering wordt gemaakt. Als u een nieuw object maakt en daarvoor het Zone Passport-subtype selecteert in de sectie Details, dan worden in de sectie Parameters alle specifieke parameters die de Zone-tool aan de markering doorgeeft, in blauw weergegeven (Fig. 21).

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

Met het TEXT2-commando kunt u elk van deze variabelen in een 2D-script schrijven - zo krijgt u een markering die alleen uit tekst bestaat (Afb. 22).

zoomen
zoomen

Met behulp van de algemene parameters van de zonemarkering kunt u de tekststijl en regelhoogte definiëren afhankelijk van de lettertypehoogte: 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 U kunt een nieuwe parameter maken om het type markering te selecteren (Afb. 23), hiervoor opties instellen in het Parameters-script (Afb. 24) en in de 2D-script schrijft verschillende soorten markeerweergave voor verschillende typen.

zoomen
zoomen
zoomen
zoomen

2D-script: if mt = "marker with number" then text2 0, 0, ROOM_NUMBER CIRCLE2 0,0, row endif if mt = "number and area" then text2 0, row / 2, ROOM_NUMBER text2 0, -row / 2, AREA_TEXT endif if mt = "title and area" dan text2 0, row / 2, ROOM_NAME text2 0, -row / 2, AREA_TEXT endif if mt = "number, title and area" dan 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 In dit script heb ik de voorgedefinieerde gebiedsvariabele niet als een gebied gebruikt, maar het gebied geconverteerd naar tekst en toegevoegd aan it units: area = str (ROOM_AREA, 4, 2)! het omzetten van een getal naar tekst met 2 decimalen AREA_TEXT = gebied + "sq.m."door aan de tekenreekswaarde de letters "sq.m." toe te voegen U kunt de lijnen in de markering aanvullen met lijnen die enkele lijnen scheiden. Gebruik het STW-commando om de lengte van een string te vinden. Laten we aan het begin van het script toevoegen: tl1 = stw (ROOM_NUMBER) / 1000 * GLOB_SCALE tl2 = stw (ROOM_NAME) / 1000 * GLOB_SCALE tl3 = stw (AREA_TEXT) / 1000 * GLOB_SCALE if mt = "nummer en gebied" dan tl = MAX (tl1, tl3) als mt = "nummer, titel en gebied" dan tl = MAX (tl1, tl2) als mt = "titel en gebied" dan tl = MAX (tl2, tl3) als mt = "alleen gebied" dan tl = tl3 EN voeg in de varianten van markeringen de regels toe met het commando LINE2 (Afb. 25).

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

Als het zonenummer uit meerdere cijfers bestaat, kunt u voor de markering een parameter maken voor de straal van een cirkel, onafhankelijk van de letterhoogte, of in plaats van een cirkel een ellipsachtige vorm beschrijven met een lengte gelijk aan de lengte van de zonenummerlijn die we eerder vonden: POLY2_ 5, 1 + 2 + 4, -tl1 / 2, rij, 1, tl1 / 2, rij, 1, tl1 / 2, -row, 1001, -tl1 / 2, -row, 1, -tl1 / 2, row, 1001 U kunt een nieuwe parameter voor vloertype (FLOOR_TYPE) en een parameter waarmee u deze kunt verbergen of weergeven (ShowFloorType) toevoegen, en in een 2D-script een driehoek met een polylijn en tekst met een vloertype: als ShowFloorType dan ADD2 0, rij * 3 POLY2_ 4, 1, -rij * 1.4, -rij * 0.8, 1, rij * 2.8,60,201, rij * 1.4, -rij * 0.8, 1, 0,0,700 text2 0,0, FLOOR_TYPE endif Voor het vloertype is het wenselijk om een aparte parameter voor de pen toe te voegen, evenals punten voor het grafisch bewerken van de locatie van de vloermarkering. Ik heb in detail beschreven hoe je grafische bewerkingspunten toevoegt aan mijn webinar, en met behulp van de link aan het einde van het artikel kun je objecten downloaden en zien hoe dit in dit specifieke geval wordt geïmplementeerd.

En tot slot, laten we eens kijken naar een ander zeer belangrijk subtype van een object dat grote mogelijkheden biedt: de globale parameters van de bibliotheek (Afb. 26).

zoomen
zoomen

Een object met dit subtype bouwt of tekent niets, het definieert parameters in modelaanzichten. Daar kunt u dus die parameters verwijderen die u gemeenschappelijk voor het object wilt zien, maar tegelijkertijd verschillende waarden voor verschillende typen kunnen instellen.

Ik zal dit laten zien met een voorbeeld van een zonemarkering. Ik kwam projecten tegen waarin er verschillende sets zones in verschillende lagen waren voor verschillende weergaven. Als er behoefte is aan verschillende markeringen, dan is de Library Global Parameters de beste oplossing.

Ik heb een marker waarin het mogelijk is om het type vloer in een driehoek te zetten en het type markering te veranderen (fig. 27). En deze twee parameters worden verplaatst naar een apart bestand van het subtype Globale bibliotheekparameters (Afb. 28).

zoomen
zoomen
zoomen
zoomen

Om deze parameters weer te geven in het dialoogvenster Modelweergaveparameters, moet u ze registreren in het objectinterfacescript (Afb. 29). Ik zal niet in detail ingaan op de speciale commando's voor dit script, ze worden voldoende gedetailleerd en met voorbeelden beschreven in het naslagwerk. Ik zal alleen zeggen dat we hier beschrijven waar dit of dat label of knop zal worden geplaatst (een veld met een keuze aan opties, een vinkje, enz.), Afbeeldingen kunnen ook in de gebruikersinterface worden ingevoegd. In de standaardbibliotheek heeft bijna elk object een grafische interface; je kunt alle mogelijkheden zien en zien hoe deze scripts zijn geschreven. Naast de Check-knop heeft het script ook een View-knop. Door erop te klikken, kun je snel zien wat er gebeurt.

zoomen
zoomen

U kunt het object opslaan en bekijken in het dialoogvenster Modelweergaveopties (Afbeelding 30). Hier kunnen we het type markering in één keer wijzigen voor alle zones in het project (met deze markering), maar afzonderlijk voor verschillende typen.

zoomen
zoomen

Nu moet u in het zonemarkeringsobject het object opvragen naar de waarden van deze twee parameters. In het hoofdscript (dat eerst door het object wordt gelezen, dus alle berekeningen en definities van waarden die in verschillende scripts moeten worden gebruikt, is het beter om hier te schrijven) schrijf ik twee regels als volgt: success1 = LIBRARYGLOBAL ("LibraryGlobals20 "," ShowFloorType ", ShowFloorType) success2 = LIBRARYGLOBAL (" LibraryGlobals20 "," mt ", mt)" success "zal 1 zijn als het verzoek succesvol is; anders wordt het 0.

Dit kan worden gebruikt om een waarschuwingsbericht te schrijven in plaats van een zonemarkering dat het LibraryGlobals20-object niet in de bibliotheek is geladen.

Dan werkt het object zoals gewoonlijk, met twee nieuwe waarden: als het type markering dat en dat is, schrijf dan dat en dat, enzovoort. In dit artikel heb ik slechts een klein deel van de mogelijkheden van GDL behandeld. Met zijn hulp kunt u zowel zeer eenvoudige ontwerpelementen als zeer complexe objecten maken.

U heeft bijvoorbeeld te maken met kleine en eenvoudige SIP-paneelwoningen. U heeft een specifieke lijst met opties om het project te wijzigen: - de lengte en breedte van het huis kan variëren van 2,4 tot 24 meter met een stap van 1,2 m; - als de breedte groter is dan 6 m, moet er in het midden nog een muur zijn; - twee mogelijkheden voor verdiepingshoogtes afhankelijk van de paneelmaat; - aantal verdiepingen - een of twee verdiepingen; - ramen kunnen zich op bepaalde plaatsen van panelen van een bepaalde grootte bevinden; - afwerking van gevels in drie uitvoeringen; - dakbedekking in drie uitvoeringen; - wanddikte van verschillende standaardmaten enzovoort.

U kunt al deze parameters voor het object instellen door de kosten per vierkante meter van het paneel, dak, decoratie, enz. En in 2D- en 3D-scripts van het object, bouw en teken dit huis volledig met variabelen in plaats van statische dimensies. Om ervoor te zorgen dat de gebruiker niet in de war raakt in een lange lijst met parameters, kunt u voor meerdere pagina's een grafische interface met afbeeldingen en diagrammen schrijven. Bereken in het hoofdscript alle volumes en geef de kosten weer. Het is ook mogelijk om naast de plattegrond een tabel met de indeling van de panelen in een 2D-script weer te geven. Het schrijven van zo'n object kost veel tijd, je moet een gedetailleerde technische specificatie opstellen, alle nuances voorzien, maar dan ontvang je niet alleen een object, maar bijna een programma waarin je, door parameters te kiezen, kan een set van een schetsontwerp krijgen met een berekening van materialen en kosten voor de klant. Hopelijk heeft dit overzicht iemands interesse gewekt in de mogelijkheden van GDL. Mijn verhaal begon met een vurige wens om wat kleine details te veranderen in een standaard zonemarkering, en hoe meer ik de gids lees, hoe meer het potentieel van deze tool, naar mijn mening, zeer nuttig voor een architect, wordt onthuld. Via de onderstaande link kunt u alle objecten downloaden die in dit artikel als voorbeelden werden beschouwd: Download voorbeelden Notitie. ARCHICAD 20 werd gebruikt om deze objecten te schrijven, dus ze zullen niet openen in eerdere versies. Over GRAPHISOFT GRAPHISOFT Bedrijf® bracht een revolutie teweeg in de BIM in 1984 met ARCHICAD® Is de eerste BIM-oplossing in de branche voor architecten in de CAD-industrie. GRAPHISOFT blijft leider op de architecturale softwaremarkt met innovatieve producten zoals BIMcloud ™, 's werelds eerste real-time collaboratieve BIM-ontwerpoplossing, EcoDesigner ™,' s werelds eerste volledig geïntegreerde energiemodellering en energie-efficiëntiebeoordelingen van gebouwen en BIMx® Is de toonaangevende mobiele app voor het presenteren en presenteren van BIM-modellen. GRAPHISOFT maakt sinds 2007 deel uit van de Nemetschek Group.

Aanbevolen: