ARCHICAD: ОТКРИВАНЕ на GDL: Програмиране за уникалните предизвикателства на архитекта

ARCHICAD: ОТКРИВАНЕ на GDL: Програмиране за уникалните предизвикателства на архитекта
ARCHICAD: ОТКРИВАНЕ на GDL: Програмиране за уникалните предизвикателства на архитекта

Видео: ARCHICAD: ОТКРИВАНЕ на GDL: Програмиране за уникалните предизвикателства на архитекта

Видео: ARCHICAD: ОТКРИВАНЕ на GDL: Програмиране за уникалните предизвикателства на архитекта
Видео: Язык GDL в ARCHICAD 2024, Април
Anonim

Този експертен материал продължава поредицата статии „ARCHICAD: Преоткриване“, която започна през декември 2016 г. със статия на Владимир Савицки „Създаване на конструкции и извличане на работни чертежи от модел“, а след това продължи с публикациите на Светлана Кравченко „ARCHICAD: Преоткриване. Визуализация - нови възможности за архитект "и Александър Анищенко" ЕКИПНА РАБОТА: ефективна работа в екип стъпка по стъпка ". Цикълът е предназначен да помогне на потребителите да разгърнат пълния потенциал на ARCHICAD®… Помолихме архитектите да споделят личния си опит от използването на програмата, използвайки нестандартни подходи, малко изучени функции и нови функции, за които много потребители дори не са наясно. Като разработчици на приложението ARCHICAD, ние сме уверени, че само задълбоченото познаване на продукта може да разкрие пълната му стойност и да окаже решаващо влияние върху резултатите, скоростта и качеството на работата на дизайнера. Предпочитате ли и "непрочетени пътеки"? Имате ли опит в използването на нестандартни подходи при работа с ARCHICAD, използвайте редовно не най-известните функции на приложението? Ще се радваме да поканим нови автори за сътрудничество: [email protected]. Светлана Кравченко, практикуващ архитект, съобщава:

мащабиране
мащабиране

Със сигурност много от вас са чували за GDL в ARCHICAD, но все още не всеки знае как да го използва в работата. Като се има предвид невероятната полезност на тази функция, както и многото въпроси след първия ми уеб семинар по тази тема, реших да вляза в повече подробности за това как и най-малкото познание за нея може да помогне много в ежедневната работа на архитект.

Нека започнем с основите GDL (Geometric Description Language) е BASIC-подобен език за програмиране, предназначен да работи в средата ARCHICAD. Той описва 3D твърди тела (като врати, прозорци, мебели) и 2D символи в прозореца на плана на пода. Тези обекти се наричат библиотечни функции.

За тези, които са поне малко запознати с програмирането, овладяването на този език няма да бъде трудно. При достатъчно желание обаче изучаването на GDL ще бъде съвсем по силите на човек, който е далеч от тази среда. Всеки архитект е изучавал геометрия и описателна геометрия по негово време, има отлично обемно мислене и това вече е половината от успеха. Не е нужно веднага да се опитвате да пишете сложни обекти, струва си да започнете с основните геометрични фигури и форми; много информация може да бъде получена чрез изследване на скриптовете на други библиотечни елементи. Е, основният източник на информация е справочното ръководство за GDL, до което можете да стигнете чрез менюто за помощ в самия ARCHICAD. И така, защо един архитект може да се възползва от познанията за GDL? Например, за разлика от Grasshopper, с който можете да създавате сложни структури, GDL е просто необходим за писане на различни маркери и допълнителни описания, както и за създаване на специални компоненти за други библиотечни функции или инструменти. Едно от първите ми приложения на GDL в моята работа беше създаването на специално крило на вратата на панела, което при преоразмеряване не се мащабира във всички посоки, а само променя размерите на панела. Дебелината на къдравата рамка и ширината на сбруята останаха непроменени. Също така архитектите много често искат да добавят някои прости функции към съществуващите обекти на стандартните библиотеки - и това е основната причина, поради която те започват да се задълбочават в GDL. Разбира се, познаването на GDL не е жизненоважно и много от тези задачи могат да бъдат изпълнени със стандартни инструменти. Например можете да изградите пълнежи с плочи и да ги запазите като специално крило на вратата. Ако имате само няколко от тези нестандартни врати, това ще бъде още по-бързо. Но ако във вашия проект има много подобни врати с различни размери и тяхната ширина се променя в процеса на работа, тогава писането на специален панел в GDL значително ще ускори и опрости работата. Геометричното описание предполага, че всяка от възможните фигури може да бъде написана в текст според размери или координати. За 3D скрипт има блок от команди за основни пространствени форми, като: - БЛОК и Тухла - паралелепипед, конструиран в три измерения с начало в точка 0 на координатната система БЛОК a, b, c тухла a, b, c

мащабиране
мащабиране

- ЦИЛИНД - цилиндър по оста Z, с височина h и радиус r ЦИЛИНД h, r

- СФЕРА - сфера, центрирана в началото и радиуса r СФЕРА r

мащабиране
мащабиране

Елипса и конус са описани по подобен начин. Следващият блок от фигури вече е по-сложен - това са различни призми. Те са описани с набор от координати на точки. Най-простата призма се определя от броя на точките (n), височината (h) и изброяването на координатите на всички точки по ред. ПРИЗМА n, h, x1, y1, … xn, yn

Има много разновидности на призмата. Следващият изглед, ПРИЗМА_, ви позволява да посочвате кодове на състоянието към координатите на точките, които определят видимостта на лицата и ръбовете, а също така ви позволява да създавате извити призми и призми с дупки (вижте раздела Кодове на състоянието в справочника). Друг вид, BPRISM_, създава призма, усукана около оста Y. FPRISM_ изгражда призма с фаска или филе от горната страна.

мащабиране
мащабиране

Има няколко команди, които описват по-сложни форми, базирани на полилинии: ЕКСТРУДИРАНЕ, ПИРАМИДА, ОБРЪЩАНЕ, РЕГУЛИРАНЕ, ПОЧИСТВАНЕ, ТРЪБА, КУНИ, МАСА. Описанието им с примери може да се намери в препратката. За 2D скрипт фигурите се описват от други команди: линия, кръг, правоъгълник, полилиния, сплайн. Но можете също да регистрирате команда за изграждане на проекция от 3D скрипт.

Създаването на 2D или 3D фигури е само част от функционалността на GDL. Ако просто се нуждаете от маса, тогава е по-лесно да я изградите с инструментите на самия ARCHICAD. Обект се записва в случая, когато се изисква някакъв параметризъм: способността да се избират различни видове крака на масата, броят на краката, да се преоразмерява масата, като същевременно се поддържат останалите размери, да се изчислява дървесината за нейното производство, тегло и цена. Обектът може да не съдържа никаква геометрия, а само да извършва изчисления. За това се използват и контролни клаузи (контролни оператори), като цикли, условни оператори, отнасящи се до конкретно място в кода (подпрограма). Най-добре е да се запознаете с цикли и условия в самото начало - те се използват често. И така, всички примери по-долу имат условни изявления. ПРИМЕР # 1 - въртене на обект Дизайнерите често искат да направят обект обръщаем. Използвайки този прост пример, ще разгледаме структурата на елемента в библиотеката, както и основните прозорци на GDL Object Editor. За да отворите който и да е обект, намиращ се в пространството на проекта (ако разработчикът не е поставил парола върху него), трябва да го изберете и да натиснете комбинацията от клавиши Ctrl + Shift + O. Друг начин е да използвате менюто Файл> Библиотеки и обекти> Отваряне на обект. Ако в този момент не е избран обект, ще се отвори прозорец за избор на обект. Нека добавим параметри на въртене, например, към жалузи (фиг. 1).

мащабиране
мащабиране

И така, отворихме прозореца на GDL Object Editor (Фиг. 2). Горе вляво има прозорец за преглед на различни изгледи, както в обичайния прозорец на параметрите на обекта; дори вляво има бутони за избор на изглед - план, кота, 3D-прозорец и предварителен преглед. По-долу има бутони за отваряне на таблици с параметри, списъци с данни и скриптове. Скриптовете могат да бъдат отворени по два начина: щракнете върху бутона с името на скрипта - отворете в същия прозорец, щракнете върху бутона вдясно с иконата на прозореца - скриптът ще се отвори в отделен прозорец. Това може да бъде полезно, за да видите едновременно различни скриптове (Фигура 3).

мащабиране
мащабиране

В горната част на прозореца на който и да е скрипт има много необходим бутон Проверка: когато щракнете върху него, редакторът ще ви подкани дали има скриптове. Съобщението ще съдържа причината за грешката и номера на реда, където е открита грешката. В раздела „Детайли“можете да изберете подтип на обект: крило на вратата по поръчка, копче на вратата, рамка на завеса и т.н. Така че, специални обекти (писалка, платно, рамка) ще се появят в съответния прозорец за избор на тези елементи. Когато е избран 2D тип, обектът няма прозорци за 3D геометрия. Там можете също да изберете типове за различни маркери - възел, секции, надписи на лидера, зони; те също ще се появят в съответните им инструменти. В този раздел можете да попълните описание на обекта и да изберете парола. По-нататък - "Параметри", където всички данни, които се използват в този обект и които могат да бъдат променени по време на работа по проекта, са представени под формата на таблица. Тук трябва да добавим параметри за завоите, които ще използваме по-късно.

мащабиране
мащабиране

Натиснете бутона New, разположен над масата (фиг. 4). Ще се появи нов ред, в който трябва да попълните колоните. Първата от тези колони е променлива. Тук пишем името на променливата, която ще се използва в скриптове, на латиница и без интервали. Трябва да го наименувате, за да е лесно за запомняне и в същото време лесно да разберете за какво е отговорна тази променлива. В нашия случай трябва да създадем две променливи за стойността на ъглите на въртене по оста X и Y (обектът може да бъде завъртян около оста Z точно в плана). Реших да ги кръстя angle_x и angle_y. В следващата колона трябва да изберете типа данни. Изборът е представен в таблица 1.

мащабиране
мащабиране

Последните два типа не се използват при конструирането на обекта, но са необходими за по-голяма яснота и подреденост на списъка в прозореца за параметри на обекта. Нуждаем се от ъгъл - това е втората икона в таблицата. Третата колона е Име. Тук можете да напишете без правила на който и да е език какво точно искаме да видим по-късно в прозореца на параметрите на обекта. И последната колона е Стойност. Сега можете да оставите 0 тук: тази стойност се променя по всяко време както в скрипта, така и в параметрите на самия обект. Фигура 2 показва как изглеждат двете нови опции в прозореца на GDL Object Editor. 5. Използвайте стрелките в началото на реда, за да преместите линията на удобно място.

мащабиране
мащабиране

След това трябва да запишете обекта под ново име, тъй като стандартната библиотека е кодирана твърдо в контейнера и не можете да презапишете обекти в него. Прозорецът Параметри на обекта вече ще изглежда така (Фиг. 6).

мащабиране
мащабиране

Има два нови параметъра, стойността на които може да се променя по всяко време. Но сега нищо няма да се случи, тъй като все още не са написани команди, използващи ги. Сега трябва да отворите прозореца на 3D скрипта. Ето пълно описание на това как да изградите 3D модел въз основа на дадените параметри. Освен това в обекта могат да бъдат вложени различни макроси. Преди всички конструкции трябва да завъртите координатната система, в която ще бъде вграден обектът. Тук е важно да се разбере следната логика: всички завъртания, движения и мащабиране се случват по различен начин, отколкото при работа в самия ARCHICAD. Ние не вземаме елемент и го въртим, а въртим глобалната координатна система (след като я сменим, тя става локална) отпред изграждане на обект. Преместване (ADD Command), Rotate (ROT), Scale (MUL) са команди за преобразуване на координатна система. По-нататъшните трансформации могат да бъдат изтрити в скрипта една по една, няколко наведнъж или да бъдат изтрити всички наведнъж. Справочникът описва всичко това достатъчно подробно и с примери. Пример за преместване на координатна система в 3D пространство по три оси наведнъж е показан на фиг. 7. ДОБАВЕТЕ a, b, c

мащабиране
мащабиране

И така, преди всички конструкции, ние завъртаме координатната система, първо по една, после по другата ос. Въртенето по оста X се извършва от командата ROTX alphax, където alphax е ъгълът на въртене обратно на часовниковата стрелка; вместо alphax, трябва да въведете предварително създадена променлива. Въртенето по оста Y се извършва по същия начин (фиг. 8).

мащабиране
мащабиране

Сега можете да зададете различни ъгли на въртене - и промените в 3D модела ще се извършат в прозореца за показване, разположен в горния ляв ъгъл (Фиг. 9).

мащабиране
мащабиране

Сега можете да зададете различни ъгли на въртене - и промените в 3D модела ще се извършат в прозореца за показване, разположен в горния ляв ъгъл (Фиг. 9). Но все още нищо не се случва в 2D. В 2D скрипт обектът се изгражда с отделни линии и полилинии, така че чертежът на обект в план е в пъти по-бърз. На един обект това е незабележимо, но ако има стотици такива мрежи в проекта, спирането ще бъде значително. Можете да изчислите координатите на точките на тези линии и да ги нанесете, както биха изглеждали в проекцията на завъртяния обект, но това не е много просто и не е много бързо. В тази решетка предлагам следното решение: ако ъглите в X или Y не са равни на нула, тогава обектът в 2D скрипта, т.е. за плана, ще бъде представен като проекция на 3D модела и иначе по стария начин. Проекцията на модела за 2D скрипт се изгражда от командата PROJECT2 projection_code, ъгъл, метод. Можете да прочетете какво означава проекционен_код, ъгъл, метод в справочника, но ние ще се запознаем с по-важната команда от раздела IF - THEN - ELSE - ENDIF контролни изявления. Това са условни изявления, които ще ви помогнат да изградите условната клауза от предишния параграф. На фиг. 10 Подчертах добавените команди в 2D скрипта и добавих „превод“в червено вдясно.

мащабиране
мащабиране

Сега просто трябва да запазите обекта и можете да го използвате (фиг. 11). Предимството на този метод пред преобразуването в morph е, че обектът остава параметричен, може да се прочете в спецификациите, в него можете да промените размерите на ламелите, размера на рамката и всичко останало, което е било в оригиналния обект.

мащабиране
мащабиране

Така че подробно, използвайки този пример, разгледахме основните прозорци и скриптове на GDL Object Editor. Ако обектът, който сте избрали за ротация, има параметри не под формата на списък, както в тази решетка, а под формата на картини и диаграми, това означава, че разработчикът е написал и графичен интерфейс. Най-често стандартният списък с параметри е скрит, както на фиг. 12: В падащия списък със страници с параметри няма раздел „Всички параметри“.

мащабиране
мащабиране

В този случай трябва да влезете в скрипта за параметри и да намерите командата, която скрива всички параметри (фиг. 13). Този скрипт описва всички действия, които засягат параметрите: - обозначаване на опции или диапазони на възможни стойности (СТОЙНОСТИ); - всякакви изчисления, резултатът от които се присвоява на параметъра (ПАРАМЕТРИ); - скриване или заключване на параметри (HIDEPARAMETER, LOCK).

мащабиране
мащабиране

Редът HIDEPARAMETERS ALL може просто да бъде изтрит или чрез поставяне на "!" В началото на реда го направете нечетим (според синтаксиса на GDL ред, започващ с удивителен знак, се счита за коментар. Освен това ще напиша описания и преводи в екранните снимки след знака "!"). След това редът "Всички параметри" ще се появи в списъка със страници с параметри и като го изберете, ще видите стандартен списък с параметри, сред които ще има нови редове за въртене. ПРИМЕР # 2 - текст върху символ Вземам следващия пример от настоящия проект. Когато се работеше с плана на многоквартирна жилищна сграда, се изискваше да се постави буквата „К“върху външните тела на климатиците - и то така, че тя винаги да е разположена вертикално. Разбира се, писмото можеше просто да бъде добавено отгоре с текст или външен текст с надпис, но тогава, когато климатикът беше завъртян, можеше да се наложи и текстът да бъде преместен. За начало добавих четири нови параметъра (Фигура 14):

мащабиране
мащабиране

1. Показване на текст: типът на параметъра е булева стойност, която предполага две възможни стойности: 0 (не) и 1 (да). По този начин текстът може да бъде включен или изключен.

2. Специален текст: тип параметър - текст. Позволява ви да напишете какъвто и да е текст в символа (възнамерявам да използвам една буква, така че да се побере в правоъгълника на блока на климатика).

3. Шрифт: тип - текст. Моля, обърнете внимание, че някои видове запис на тази променлива ви позволяват да изберете стойности на шрифта в колоната от списъка с тези, инсталирани на компютъра. „Fonttype“извиква този списък автоматично, но ако напиша „typefont“или просто „font“, тогава трябва да напиша името на шрифта ръчно. Забелязах този момент случайно в един от стандартните обекти.

4. Текстова писалка: тип - писалка. Е, тук всичко е ясно.

Сега нека разгледаме иконите, върху които щракнах в началото на редовете. На първия ред е натисната икона

Image
Image

което означава удебелен - удебелен. Тоест този ред в прозореца на параметрите на обекта ще бъде получер. Останалите трима имат пиктограма

Image
Image

… Това означава, че тези редове ще бъдат вложени в падащия списък под първия ред. На фиг. 15 е екранна снимка, илюстрираща как изглежда в параметрите на обекта. За начало добавих четири нови параметъра (Фигура 15):

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

И на фиг. 16 - това, което добавих в 2D скрипт (традиционно с превод и коментари).

мащабиране
мащабиране

Фиг. 16. Добавени са редове в 2D скрипт В следващата екранна снимка (фиг. 17), за по-голяма яснота съм оцветил различни видове думи / команди / променливи.

мащабиране
мащабиране

Обектът е готов (фиг. 18).

мащабиране
мащабиране

И ако не пишех редове с въртене и мащабиране, тогава обектът ще изглежда като на фиг. 19.

мащабиране
мащабиране

ПРИМЕР # 3 - подробно За да опростите работата по проект, когато пишете обект, можете да добавите текстов параметър с избор от няколко опции за детайлизиране (прости, средни, подробни). И в 3D скрипта, когато изграждате различни малки части, добавете условие от типа: ако нивото на детайлност = "подробно", тогава (описание на частите на сградата) краят на условието Глобални променливи заслужават специално внимание. Те са с дължина 40 страници в справочното ръководство и са групирани по теми за лесно търсене. В предишния пример използвах някои данни за обектна ориентация в проекта. Същият раздел на справочното ръководство съдържа глобални променливи за координатите на местоположението на обекта - те се използват за създаване на обекти като лидер с координати или коти на участък / кота. Много често се използва GLOB_SCALE - мащабът на чертежа (зависи от изгледа според текущия прозорец), при мащаб 1: 100 е равен на 100, при мащаб 1:20 е равен на 20. Той най-често се използва за преобразуване на размера на шрифта в моделни метри или обратно. Също така този параметър може да се използва за „закачане“на опциите за показване на плана. Например за пейка напишете следното в 2D скрипт:

АКО GLOB_SCALE <100 ТОГАВА ! ако мащабът е по-голям от 1: 100, тогава
ПРОЕКТ2 3, 270, 2 ! изграждане на проекция от 3D модел
ИНАЧЕ ! в противен случай
ENDIF ! край на условието

Така на генералния план в мащаб 1: 500, пейките ще бъдат показани като правоъгълници, а на фрагмент с по-голям мащаб ще бъде изчертана подробна проекция. Подобна техника, но за триизмерен модел, се използва в стандартни дървета - ако активирате квадратчето Автоматичен тип корона. На определено разстояние от камерата типът коронка се променя от подробен към прост и от прост към елипса. Вярно е, че за да бъдат препрочетени скриптовете на обекта, трябва да направите нещо с тях - например, след промяна на перспективата, маркиране на всички дървета, отваряне на прозореца на параметрите на обекта и, без да променяте нищо, просто щракнете OK или щракнете и премахнете отметката от квадратчето за подмяна на капака.

Нека го покажа, като използвам примера за приближаване на сфера. Ето какво написах в 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_By ^ 2) = 20 след това res = 50 ако discam20 след това res = 20 ако discam30 тогава res = 10 ако discam> 40 тогава res = 5 Reso res сфера 1 В скрипта използвах глобалните променливи GLOB_EYEPOS_X, GLOB_EYEPOS_Y, GLOB_EYEPOS_Z са координатите на местоположението на камерата (очите) в 3D-прозореца на проекта и SYMB_POS_X, SYMB_POS_Y, SYMB_POS_Z са координатите на местоположението на обекта в пространството; abs - числов модул (премахва "-", ако има такъв); sqr - квадратен корен; ^ 2 - квадратиране на число.

В 3D прозореца, на различни разстояния от камерата, сферата ще бъде нарисувана с различни приближения. За по-голяма яснота включих режима на каркасна рамка (фиг. 20).

мащабиране
мащабиране

Чрез Глобалните променливи обектът може да получи: - данни за местоположението на проекта (север, географска ширина, дължина, кота), зададени в съответния диалогов прозорец; - настоящ етаж и собствен етаж; - типът на текущия изглед (например в GOST джъмперите се използва следното условие: ако видът на изгледа е списък, тогава изградете изглед на джъмпера в раздел с водещи позиции); в примера с решетка можете да добавите следното условие: ако видът на изгледа е списък, тогава не завъртайте координатната система, така че във всеки случай да има фронтален изглед в списъка с решетки; - непълно показване на конструкции (можете да накарате обекта да не показва някои части, ако е избрано само ядрото).

Можете да плъзнете данни от стената в обект на прозорец или врата. Допълнителните описания могат да получат много различна информация за елемента, с който са свързани, например квадратче за отметка със слоеве от многослойна структура или лидер с обем на елемент. И така нататък, 40 страници с различни и много полезни глобални променливи. ПРИМЕР 4 - зонален маркер Нека да разгледаме как се създава маркер на персонализирана зона. Ако създадете нов обект и изберете подтипа Zone Passport за него в раздела Подробности, тогава в раздела Параметри всички специфични параметри, които инструментът Zone предава на маркера, се показват в синьо (Фиг. 21).

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

С помощта на командата TEXT2 можете да напишете която и да е от тези променливи в 2D скрипт - по този начин получавате маркер, състоящ се само от текст (фиг. 22).

мащабиране
мащабиране

Използвайки общите параметри на маркера на зоната, можете да определите стила на текста и височината на реда в зависимост от височината на шрифта: ОПРЕДЕЛЕТЕ СТИЛ „СТАЯ“AC_TextFont_1, ROOM_LSIZE, 5.0 STYLE „ROOM“ред = ROOM_LSIZE / 1000 * GLOB_SCALE * 1.5 text2 0 ред, ROOM_NUMBER text2 0, 0, ROOM_NAME text2 0, -row, ROOM_AREA Можете да създадете нов параметър, за да изберете вида на маркера (фиг. 23), да зададете опции за него в скрипта за параметри (фиг. 24) и в 2D скриптът пише различни типове маркери за различни типове.

мащабиране
мащабиране
мащабиране
мащабиране

2D скрипт: ако mt = "маркер с номер", тогава text2 0, 0, ROOM_NUMBER CIRCLE2 0,0, endif на реда, ако mt = "номер и площ", тогава text2 0, ред / 2, ROOM_NUMBER text2 0, -row / 2, AREA_TEXT endif, ако mt = "заглавие и област", след това text2 0, ред / 2, ROOM_NAME text2 0, -row / 2, AREA_TEXT endif ако mt = "номер, заглавие и област", след това text2 0, ред, ROOM_NUMBER text2 0, 0, ROOM_NAME text2 0, -row, AREA_TEXT endif, ако mt = "area only", след това text2 0, 0, AREA_TEXT endif В този скрипт не използвах предварително зададената променлива на област като област, но преобразувах областта в текст и добавих към това мерни единици: area = str (ROOM_AREA, 4, 2)! преобразуване на число в текст с 2 знака след десетичната запетая AREA_TEXT = площ + "кв.м." ! добавяне към низовата стойност на буквите "кв.м." Можете да допълвате редовете в маркера с линии, разделящи някои редове. За да намерите дължината на низ, използвайте командата STW. Нека добавим в началото на скрипта: tl1 = stw (ROOM_NUMBER) / 1000 * GLOB_SCALE tl2 = stw (ROOM_NAME) / 1000 * GLOB_SCALE tl3 = stw (AREA_TEXT) / 1000 * GLOB_SCALE ако mt = "номер и площ", тогава tl = MAX (tl1, tl3), ако mt = „номер, заглавие и площ“, тогава tl = MAX (tl1, tl2), ако mt = „заглавие и площ“, тогава tl = MAX (tl2, tl3), ако mt = „само площ“, тогава tl = tl3 И във вариантите на маркери добавете редовете с командата LINE2 (Фиг. 25).

Рис. 25. 2D-скрипт
Рис. 25. 2D-скрипт
мащабиране
мащабиране

Ако номерът на зоната се състои от няколко цифри, за маркера можете да създадете параметър за радиус на кръг, независим от височината на шрифта, или вместо кръг, да опишете подобна на елипса форма с дължина, равна на дължината на номера на зоната, който открихме по-рано: POLY2_ 5, 1 + 2 + 4, -tl1 / 2, ред, 1, tl1 / 2, ред, 1, tl1 / 2, -row, 1001, -tl1 / 2, -row, 1, -tl1 / 2, row, 1001 Можете да добавите нов параметър за типа етаж (FLOOR_TYPE) и параметър, който ви позволява да го скриете или покажете (ShowFloorType), а в 2D скрипт добавете триъгълник с полилиния и текст с тип етаж: ако ShowFloorType тогава ADD2 0, ред * 3 POLY2_ 4, 1, -рав * 1.4, -рав * 0.8, 1, ред * 2.8,60,201, ред * 1.4, -рав * 0.8, 1, 0,0,700 text2 0,0, FLOOR_TYPE endif За типа на пода е желателно да се добави отделен параметър за писалката, както и точки за графично редактиране на местоположението на маркера на пода. Описах подробно как да добавя точки за графично редактиране в моя уеб семинар и използвайки връзката в края на статията, можете да изтеглите обекти и да видите как това се прилага в конкретния случай.

И накрая, нека разгледаме друг много важен подтип на обект, който отваря големи възможности - глобалните параметри на библиотеката (фиг. 26).

мащабиране
мащабиране

Обект с този подтип не изгражда или рисува нищо, той дефинира параметри в изгледи на модели. По този начин там можете да извадите онези параметри, които бихте искали да видите общи за обекта, но в същото време да можете да задавате различни стойности за различните типове.

Ще покажа това с пример за маркер на зона. Попаднах на проекти, в които имаше няколко групи зони в различни слоеве за различни гледки. Ако има нужда от различни маркери, тогава библиотечните глобални параметри са най-доброто решение.

Имам маркер, в който е възможно да зададете вида на пода в триъгълник и да промените вида на маркировката (фиг. 27). И тези два параметъра се преместват в отделен файл от подтипа Глобални библиотечни параметри (Фиг. 28).

мащабиране
мащабиране
мащабиране
мащабиране

За да се покажат тези параметри в диалоговия прозорец Параметри на изглед на модел, трябва да ги регистрирате в скрипта на обектния интерфейс (Фиг. 29). Няма да се спирам подробно на специалните команди за този скрипт, те са описани достатъчно подробно и с примери в справочника. Ще кажа само, че тук описваме къде ще се намира този или онзи етикет или бутон (поле с избор на опции, отметка и т.н.), изображенията също могат да бъдат вмъкнати в потребителския интерфейс. В стандартната библиотека почти всеки обект има графичен интерфейс; можете да видите всички възможности и да видите как се пишат тези скриптове. В допълнение към бутона Check, скриптът има и бутон View. Като кликнете върху него, можете бързо да видите какво се случва.

мащабиране
мащабиране

Можете да запазите обекта и да го видите в диалоговия прозорец Опции за изглед на модел (Фигура 30). Тук можем да променим вида на маркирането наведнъж за всички зони в проекта (с този маркер), но отделно за различните типове.

мащабиране
мащабиране

Сега, в обекта на маркер на зона, трябва да поискате обекта за стойностите на тези два параметъра. В главния скрипт (който първо се чете от обекта, така че всички изчисления и дефиниции на стойности, които трябва да се използват в няколко скрипта, по-добре е да напиша тук) пиша два реда по следния начин: success1 = LIBRARYGLOBAL ("LibraryGlobals20 "," ShowFloorType ", ShowFloorType) success2 = LIBRARYGLOBAL (" LibraryGlobals20 "," mt ", mt)" успех "ще бъде 1, ако заявката е успешна; в противен случай ще бъде 0.

Това може да се използва за писане на предупредително съобщение вместо маркер на зона, че обектът LibraryGlobals20 не е зареден в библиотеката.

Тогава обектът работи както обикновено, като се използват две нови стойности: ако видът на маркирането е такъв и такъв, тогава напишете такъв и такъв и т.н. В тази статия разгледах само малка част от възможностите на GDL. С негова помощ можете да създавате както много прости елементи на дизайна, така и много сложни обекти.

Например, имате работа с малки и прости къщи от SIP панел. Имате конкретен списък с опции за промяна на проекта: - дължината и ширината на къщата могат да бъдат от 2,4 до 24 метра със стъпка от 1,2 m; - ако ширината надвишава 6 м, тогава в средата трябва да има друга стена; - два варианта за височина на пода в зависимост от размера на панела; - етажност - един или два етажа; - прозорците могат да бъдат на определени места от панели с определен размер; - довършване на фасади в три версии; - покривни покрития в три версии; - дебелина на стената от няколко стандартни размера и така нататък.

Можете да зададете всички тези параметри за обекта, като добавите цената на квадратен метър от панела, покрива, декорацията и т.н. И в 2D и 3D скриптове на обекта, напълно изградете и нарисувайте тази къща с променливи вместо статични размери. За да не се обърка потребителят в дълъг списък с параметри, можете да напишете графичен интерфейс за няколко страници със снимки и диаграми. В основния скрипт изчислете всички обеми и покажете цената. Също така е възможно да се покаже таблица с разположението на панелите в 2D скрипт до плана. Писането на такъв обект ще отнеме много време, ще трябва да изготвите подробна техническа спецификация, да предоставите всички нюанси, но след това ще получите не просто обект, а почти програма, в която, като изберете параметри, можете да получите комплект от проект на проект с изчисление на материалите и разходите за клиента. Надяваме се, че този преглед е предизвикал нечий интерес към възможностите на GDL. Моята история започна с остро желание да променя някои малки детайли в някакъв стандартен маркер на зоната и колкото повече чета ръководството, толкова повече се разкрива потенциалът на този инструмент, според мен, много полезен за архитект. От връзката по-долу можете да изтеглите всички обекти, които са разгледани като примери в тази статия: Изтеглете примери Забележка. ARCHICAD 20 е използван за писане на тези обекти, така че те няма да се отворят в по-ранни версии. Относно GRAPHISOFT Фирма GRAPHISOFT® революционизира BIM през 1984 г. с ARCHICAD® Това е първото BIM решение в индустрията за архитекти в CAD индустрията. GRAPHISOFT продължава да води пазара на архитектурен софтуер с иновативни продукти като BIMcloud ™, първото съвместно BIM дизайнерско решение в реално време, EcoDesigner ™, първото изцяло интегрирано енергийно моделиране и оценка на енергийната ефективност на сградите и BIMx® Е водещото мобилно приложение за демонстриране и представяне на BIM модели. От 2007 г. GRAPHISOFT е част от групата Nemetschek.

Препоръчано: