ARCHICAD: REVELANDO GDL: Programação Para Os Desafios Exclusivos Do Arquiteto

ARCHICAD: REVELANDO GDL: Programação Para Os Desafios Exclusivos Do Arquiteto
ARCHICAD: REVELANDO GDL: Programação Para Os Desafios Exclusivos Do Arquiteto

Vídeo: ARCHICAD: REVELANDO GDL: Programação Para Os Desafios Exclusivos Do Arquiteto

Vídeo: ARCHICAD: REVELANDO GDL: Programação Para Os Desafios Exclusivos Do Arquiteto
Vídeo: LIVE #3 - Gestão de grandes projetos no Archicad - convidado Ruben Millon 2024, Abril
Anonim

Este material especializado dá continuidade à série de artigos "ARCHICAD: Redescobrindo", que começou em dezembro de 2016 com um artigo de Vladimir Savitsky "Criação de estruturas e extração de desenhos de trabalho de uma maquete", e continuou com as publicações de Svetlana Kravchenko "ARCHICAD: Redescobrindo. Visualização - novas oportunidades para um arquiteto "e Alexander Anishchenko" TRABALHO EM EQUIPE: trabalho em equipe eficaz passo a passo ". O ciclo é projetado para ajudar os usuários a liberar todo o potencial do ARCHICAD®… Pedimos aos arquitetos que compartilhassem sua experiência pessoal de usar o programa usando abordagens não padronizadas, funções pouco estudadas e novos recursos que muitos usuários podem nem estar cientes. Como desenvolvedores do aplicativo ARCHICAD, estamos confiantes de que somente um conhecimento profundo do produto pode revelar todo o seu valor e influenciar decisivamente os resultados, a velocidade e a qualidade do trabalho do designer. Você também prefere "caminhos não trilhados"? Você tem experiência no uso de abordagens não padronizadas para trabalhar com o ARCHICAD, não usa regularmente os recursos mais famosos do aplicativo? Teremos o maior prazer em convidar novos autores para cooperação: [email protected]. Svetlana Kravchenko, uma arquiteta praticante, relata:

ampliando
ampliando

Certamente muitos de vocês já ouviram falar do GDL no ARCHICAD, mas nem todos ainda sabem como usá-lo no trabalho. Considerando a incrível utilidade desse recurso, bem como as muitas perguntas após meu primeiro webinar sobre este assunto, decidi entrar em mais detalhes sobre como até mesmo o menor conhecimento dele pode ajudar muito no trabalho diário de um arquiteto.

Vamos começar com o básico GDL (Geometric Description Language) é uma linguagem de programação do tipo BASIC projetada para funcionar no ambiente ARCHICAD. Ele descreve corpos sólidos 3D (como portas, janelas, móveis) e símbolos 2D na janela da planta baixa. Esses objetos são chamados de Recursos de Biblioteca.

Para quem está pelo menos um pouco familiarizado com programação, dominar essa linguagem não será difícil. No entanto, com vontade suficiente, o estudo do GDL estará ao alcance de uma pessoa que está longe deste ambiente. Qualquer arquiteto estudou geometria e geometria descritiva em sua época, tem excelente pensamento volumétrico, e isso já é metade do sucesso. Você não precisa tentar escrever objetos complexos imediatamente, vale a pena começar com as formas e formas geométricas básicas; muitas informações podem ser obtidas examinando os scripts de outros itens da biblioteca. Pois bem, a principal fonte de informação é o manual de referência do GDL, que pode ser acessado através do menu Ajuda do próprio ARCHICAD. Então, por que um arquiteto pode se beneficiar do conhecimento de GDL? Por exemplo, ao contrário do Grasshopper, com o qual você pode criar estruturas complexas, o GDL é simplesmente indispensável para escrever vários marcadores e textos explicativos, bem como para criar componentes especiais para outros recursos ou ferramentas de biblioteca. Uma das primeiras aplicações do GDL no meu trabalho foi a criação de uma folha de porta de painel especial, que, ao ser redimensionada, não escalou em todas as direções, mas apenas alterou as dimensões do painel. A espessura da moldura ondulada e a largura do arnês permaneceram inalteradas. Além disso, os arquitetos muitas vezes desejam adicionar algumas funções simples aos objetos existentes das bibliotecas padrão - e esta é a principal razão pela qual eles começam a se aprofundar no GDL. Obviamente, o conhecimento do GDL não é vital e muitas dessas tarefas podem ser realizadas com ferramentas padrão. Por exemplo, você pode construir preenchimentos com lajes e salvá-los como uma folha de porta especial. Se você tiver apenas algumas dessas portas fora do padrão, será ainda mais rápido. Mas se em seu projeto existem muitas portas semelhantes de tamanhos diferentes e suas larguras mudam no processo de trabalho, escrever um painel especial no GDL irá acelerar e simplificar muito o trabalho. A descrição geométrica implica que qualquer uma das formas possíveis pode ser escrita no texto de acordo com as dimensões ou coordenadas. Para um script 3D, há um bloco de comandos para formas espaciais básicas, como: - QUADRA e TIJOLO - um paralelepípedo construído em três dimensões com a origem no ponto 0 do sistema de coordenadas BLOCO a, b, c TIJOLO a, b, c

ampliando
ampliando

- CILINDRO - cilindro ao longo do eixo Z, com altura he raio r CILIND. H, r

- ESFERA - esfera centrada na origem e raio r ESFERA r

ampliando
ampliando

Uma elipse e um cone são descritos de maneira semelhante. O próximo bloco de figuras já é mais complicado - são vários prismas. Eles são descritos por um conjunto de coordenadas de ponto. O prisma mais simples é determinado pelo número de pontos (n), altura (h) e listando as coordenadas de todos os pontos em ordem. PRISM n, h, x1, y1, … xn, yn

Existem muitas variedades de prisma. A próxima vista, PRISMA_, permite indicar códigos de status para as coordenadas de pontos, que determinam a visibilidade de faces e arestas, e também permite criar prismas curvos e prismas com orifícios (consulte a seção Códigos de status no livro de referência). Outro tipo, BPRISM_, cria um prisma torcido em torno do eixo Y. FPRISM_ constrói um prisma com um chanfro ou filete no lado superior.

ampliando
ampliando

Existem vários comandos que descrevem formas mais complexas baseadas em polilinhas: EXTRUDE, PYRAMID, REVOLVE, RULED, SWEEP, TUBE, COONS, MASS. Sua descrição com exemplos pode ser encontrada na referência. Para um script 2D, as formas são descritas por outros comandos: linha, círculo, retângulo, polilinha, spline. Mas você também pode registrar um comando para construir uma projeção a partir de um script 3D.

A criação de formas 2D ou 3D é apenas parte da funcionalidade do GDL. Se você só precisa de uma mesa, é mais fácil construí-la com as ferramentas do próprio ARCHICAD. Um objeto é escrito no caso em que algum tipo de parametrismo é necessário: a capacidade de selecionar diferentes tipos de pernas de mesa, o número de pernas, redimensionar a mesa mantendo as dimensões restantes, calcular a madeira para sua fabricação, peso e custo. O objeto pode não conter nenhuma geometria, mas apenas realizar cálculos. Para isso, também são utilizadas Control Clauses (Control Operators), como loops, declarações condicionais, referindo-se a um local específico no código (sub-rotina). É melhor se familiarizar com os ciclos e as condições logo no início - eles são usados com frequência. Portanto, todos os exemplos abaixo têm declarações condicionais. EXEMPLO # 1 - rotação do objeto Os designers geralmente desejam tornar um objeto giratório. Usando este exemplo simples, veremos a estrutura do item de biblioteca, bem como as janelas principais do Editor de objetos GDL. Para abrir qualquer objeto localizado no espaço do projeto (se o desenvolvedor não colocou uma senha nele), você precisa selecioná-lo e pressionar a combinação de teclas Ctrl + Shift + O. Outra maneira é usar o menu Arquivo> Bibliotecas e objetos> Abrir objeto. Se neste momento nenhum objeto foi selecionado, então uma janela para selecionar um objeto se abrirá. Vamos adicionar parâmetros de rotação, por exemplo, a uma grade veneziana (Fig. 1).

ampliando
ampliando

Portanto, abrimos a janela GDL Object Editor (Fig. 2). No canto superior esquerdo, há uma janela para visualização de diferentes visualizações, como na janela usual de parâmetros do objeto; mesmo à esquerda estão os botões para escolher uma vista - planta, elevação, janela 3D e pré-visualização. Abaixo, há botões para abrir tabelas de parâmetros, listas de dados e scripts. Os scripts podem ser abertos de duas formas: clique no botão com o nome do script - abra na mesma janela, clique no botão à direita com o ícone da janela - o script será aberto em uma janela separada. Isso pode ser útil para ver scripts diferentes ao mesmo tempo (Figura 3).

ampliando
ampliando

No topo da janela de qualquer script há um botão Verificar muito necessário: ao clicar nele, o editor irá perguntar se há algum erro no script. A mensagem conterá o motivo do erro e o número da linha onde o erro foi encontrado. Na seção "Detalhes", você pode selecionar um subtipo de objeto: folha de porta personalizada, maçaneta, moldura de parede cortina e assim por diante. Assim, objetos especiais (caneta, tela, moldura) aparecerão na janela correspondente para a seleção desses elementos. Quando um tipo 2D é selecionado, o objeto não terá janelas para geometria 3D. Lá você também pode selecionar tipos para diferentes marcadores - um nó, seções, legendas de líder, zonas; eles também aparecerão em suas respectivas ferramentas. Nesta seção, você pode preencher uma descrição do objeto e selecionar uma senha. Além disso - “Parâmetros”, onde todos os dados que são utilizados neste objeto e que podem ser alterados durante o trabalho no projeto são apresentados em forma de tabela. Aqui precisamos adicionar parâmetros para as curvas, que usaremos mais tarde.

ampliando
ampliando

Pressione o botão Novo localizado acima da tabela (Fig. 4). Uma nova linha aparecerá na qual você precisa preencher as colunas. A primeira dessas colunas é variável. Aqui escrevemos o nome da variável, que será usada em scripts, em latim e sem espaços. Você precisa nomeá-lo de forma que seja fácil de lembrar e ao mesmo tempo entender pelo que essa variável é responsável. Em nosso caso, precisamos criar duas variáveis para o valor dos ângulos de rotação ao longo dos eixos X e Y (o objeto pode ser girado em torno do eixo Z de qualquer maneira, direto no plano). Decidi chamá-los de ângulo_x e ângulo_y. Na próxima coluna, você precisa selecionar o tipo de dados. As escolhas são apresentadas na tabela 1.

ampliando
ampliando

Os dois últimos tipos não são usados na construção do objeto, mas são necessários para maior clareza e ordem da lista na janela de parâmetros do objeto. Precisamos de um canto - este é o segundo ícone da mesa. A terceira coluna é Nome. Aqui você pode escrever sem regras em qualquer idioma o que exatamente queremos ver mais tarde na janela de parâmetros do objeto. E a última coluna é Valor. Agora você pode deixar 0 aqui: este valor muda a qualquer momento tanto no script quanto nos parâmetros do próprio objeto. A Figura 2 mostra como as duas novas opções aparecem na janela do Editor de objeto GDL. 5. Use as setas no início da linha para movê-la para um local conveniente.

ampliando
ampliando

Em seguida, você precisa salvar o objeto com um novo nome, uma vez que a biblioteca padrão está codificada no contêiner e você não pode sobrescrever objetos nele. A janela Object Parameters ficará assim (Fig. 6).

ampliando
ampliando

Existem dois novos parâmetros, cujo valor pode ser alterado a qualquer momento. Mas agora nada acontecerá, já que nenhum comando foi escrito usando-os. Agora você precisa abrir a janela de script 3D. Aqui está uma descrição completa de como construir um modelo 3D com base nos parâmetros fornecidos. Além disso, várias macros podem ser aninhadas no objeto. Antes de todas as construções, você precisa girar o sistema de coordenadas no qual o objeto será construído. Aqui é importante entender a seguinte lógica: todas as rotações, movimentos e escalas ocorrem de forma diferente do que quando se trabalha no próprio ARCHICAD. Não pegamos um elemento e o giramos, mas giramos o sistema de coordenadas global (depois de mudá-lo, ele se torna local) frente construir um objeto. Mover (Comando ADD), Girar (ROT), Escala (MUL) são comandos de transformação do sistema de coordenadas. Outras transformações podem ser excluídas no script uma a uma, várias de uma vez ou excluídas todas de uma vez. O livro de referência descreve tudo isso em detalhes suficientes e com exemplos. Um exemplo de movimento de um sistema de coordenadas no espaço 3D ao longo de três eixos de uma vez é mostrado na Fig. 7 ADICIONE a, b, c

ampliando
ampliando

Portanto, antes de todas as construções, giramos o sistema de coordenadas, primeiro ao longo de um, depois ao longo do outro eixo. A rotação ao longo do eixo X é realizada pelo comando ROTX alphax, onde alphax é o ângulo de rotação no sentido anti-horário; em vez de alphax, você precisa inserir uma variável criada anteriormente. A rotação ao longo do eixo Y é realizada da mesma forma (Fig. 8).

ampliando
ampliando

Agora você pode definir diferentes ângulos de rotação - e as alterações no modelo 3D ocorrerão na janela de exibição localizada no canto superior esquerdo (Fig. 9).

ampliando
ampliando

Agora você pode definir diferentes ângulos de rotação - e as alterações no modelo 3D ocorrerão na janela de exibição localizada no canto superior esquerdo (Fig. 9). Mas nada acontece em 2D ainda. Em um script 2D, um objeto é construído com linhas e polilinhas separadas, de modo que o desenho de um objeto no plano é muitas vezes mais rápido. Em um local, isso é imperceptível, mas se houver centenas dessas grades no projeto, a frenagem será significativa. Você pode calcular as coordenadas dos pontos dessas linhas e plotá-los como seriam na projeção do objeto girado, mas isso não é muito simples e não é muito rápido. Nesta rede, proponho a seguinte solução: se os ângulos em X ou Y não forem iguais a zero, então o objeto no script 2D, ou seja, para o plano, será renderizado como uma projeção do modelo 3D, e caso contrário, da maneira antiga. A projeção do modelo para um script 2D é construída pelo comando PROJECT2 projection_code, ângulo, método. Você pode ler o que projection_code, ângulo, método significam no livro de referência, mas iremos nos familiarizar com o comando mais importante da seção de instruções de controle IF - THEN - ELSE - ENDIF. Essas são declarações condicionais que o ajudarão a construir a cláusula condicional do parágrafo anterior. Na fig. 10 Eu destaquei os comandos adicionados no script 2D e adicionei "tradução" em vermelho à direita.

ampliando
ampliando

Agora você só precisa salvar o objeto e poderá usá-lo (Fig. 11). A vantagem deste método sobre a conversão para metamorfose é que o objeto permanece paramétrico, pode ser lido nas especificações, nele você pode alterar as dimensões das lâminas, o tamanho da moldura, e tudo o mais que estava no objeto original.

ampliando
ampliando

Então, em detalhes, usando este exemplo, examinamos as janelas principais e os scripts do Editor de objetos GDL. Se o objeto que você escolheu para rotação possui parâmetros não na forma de lista, como nesta rede, mas na forma de imagens e diagramas, isso significa que o desenvolvedor também escreveu uma interface gráfica. Na maioria das vezes, a lista padrão com parâmetros está oculta, como na Fig. 12: Não há seção "Todos os parâmetros" na lista suspensa das páginas de parâmetros.

ampliando
ampliando

Nesse caso, você precisa entrar no script de parâmetros e encontrar o comando que oculta todos os parâmetros (Fig. 13). Este script descreve todas as ações que afetam os parâmetros: - designação de opções ou faixas de valores possíveis (VALORES); - quaisquer cálculos cujo resultado seja atribuído ao parâmetro (PARÂMETROS); - ocultar ou bloquear parâmetros (HIDEPARAMETER, LOCK).

ampliando
ampliando

A linha HIDEPARAMETERS ALL pode ser simplesmente excluída ou colocando um "!" No início da linha, torná-la ilegível (de acordo com a sintaxe GDL, uma linha que começa com um ponto de exclamação é considerada um comentário. Além disso, vou escrever descrições e traduções nas imagens após o sinal "!"). A seguir, aparecerá a linha "Todos os parâmetros" na lista de páginas de parâmetros e, ao selecioná-la, verá uma lista padrão com parâmetros, entre os quais surgirão novas linhas de rotação. EXEMPLO 2 - texto em um símbolo Pego o próximo exemplo do projeto atual. Ao trabalhar com a planta de um prédio residencial com vários apartamentos, era necessário colocar a letra “K” nas unidades externas dos condicionadores de ar - e para que sempre estivesse localizado na vertical. Claro, a carta poderia ter sido simplesmente adicionada no topo com um texto ou um texto de inscrição externo, mas então, quando o ar condicionado foi ligado, o texto poderia ter que ser movido também. Para começar, adicionei quatro novos parâmetros (Figura 14):

ampliando
ampliando

1. Mostrar texto: o tipo de parâmetro é um valor booleano, o que implica dois valores possíveis: 0 (não) e 1 (sim). Assim, o texto pode ser ativado ou desativado.

2. Texto especial: tipo de parâmetro - texto. Permite que você escreva qualquer texto no símbolo (pretendo usar uma letra para que caiba dentro do retângulo do bloco do ar condicionado).

3. Fonte: tipo - texto. Observe que alguns tipos de escrita desta variável permitem que você selecione os valores das fontes na coluna da lista das instaladas no computador. "Fonttype" chama essa lista automaticamente, mas se eu escrever "typefont" ou apenas "font", terei que escrever o nome da fonte manualmente. Percebi esse momento por acaso em um dos objetos padrão.

4. Caneta de texto: digite - caneta. Bem, tudo está claro aqui.

Agora vamos dar uma olhada nos ícones que cliquei no início das linhas. A primeira linha tem um ícone pressionado

Image
Image

que significa negrito - negrito. Ou seja, esta linha na janela de parâmetros do objeto ficará em negrito. Os outros três têm um pictograma

Image
Image

… Isso significa que essas linhas serão aninhadas na lista suspensa sob a primeira linha. Na fig. 15 é uma captura de tela que ilustra sua aparência nos Parâmetros do objeto. Para começar, adicionei quatro novos parâmetros (Figura 15):

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

E na fig. 16 - o que adicionei em um script 2D (tradicionalmente com tradução e comentários).

ampliando
ampliando

FIG. 16. Linhas adicionadas em um script 2D Na próxima captura de tela (Fig. 17), para maior clareza, tingi diferentes tipos de palavras / comandos / variáveis.

ampliando
ampliando

O objeto está pronto (fig. 18).

ampliando
ampliando

E se eu não escrevesse linhas com rotação e escala, o objeto se pareceria com a fig. 19

ampliando
ampliando

EXEMPLO # 3 - detalhamento Para simplificar o trabalho em um projeto, ao escrever um objeto, você pode adicionar um parâmetro de texto com uma escolha de várias opções de detalhamento (simples, médio, detalhado). E no script 3D, ao construir várias pequenas partes, adicione uma condição do tipo: se o nível de detalhe = "detalhado", então (descrição das partes da construção) o final da condição Variáveis Globais merece atenção especial. Eles têm 40 páginas no manual de referência e são agrupados por tópico para facilitar a pesquisa. No exemplo anterior, usei alguns dados de orientação de objeto no projeto. A mesma seção do manual de referência contém variáveis globais para as coordenadas da localização do objeto - elas são usadas para criar objetos como um líder com coordenadas ou elevações em uma seção / elevação. Muitas vezes é usado GLOB_SCALE - a escala do desenho (depende da vista de acordo com a janela atual), na escala de 1: 100 é igual a 100, na escala de 1:20 é igual a 20. É é mais frequentemente usado para converter o tamanho da fonte em medidores de modelo ou vice-versa. Além disso, este parâmetro pode ser usado para "travar" as opções de exibição no plano. Por exemplo, para uma bancada, escreva o seguinte em um script 2D:

SE GLOB_SCALE <100 ENTÃO ! se a escala for maior que 1: 100, então
PROJETO 2 3, 270, 2 ! construir uma projeção a partir de um modelo 3D
OUTRO ! de outra forma
FIM SE ! fim da condição

Assim, no plano diretor em uma escala de 1: 500, os bancos serão exibidos como retângulos, e em um fragmento em escala maior, uma projeção detalhada será desenhada. Uma técnica semelhante, mas para um modelo tridimensional, é usada em árvores padrão - se você habilitar a caixa de seleção Tipo de coroa automática. A uma certa distância da câmera, o tipo de coroa muda de detalhado para simples e de simples para elipse. É verdade que para que os scripts do objeto sejam relidos, você precisa fazer algo com eles - por exemplo, após mudar a perspectiva, destacar todas as árvores, abrir a janela de parâmetros do objeto e, sem alterar nada, clicar em OK, ou clique e desmarque a caixa de seleção de substituição da capa.

Deixe-me mostrar usando o exemplo de aproximação de uma esfera. Aqui está o que escrevi em um script 3D: discam_x = abs (GLOB_EYEPOS_X-SYMB_POS_X) discam_y = abs (GLOB_EYEPOS_Y-SYMB_POS_Y) discam_h = sqr (discam_x ^ 2 + discam_y ^ 2) discam_z = discam_By ^ 2 + discam_z = discam_By ^ 2) if ^ 2 = 20 then res = 50 if discam20 then res = 20 if discam30 then res = 10 if discam> 40 then res = 5 resol res sphere 1 No script eu usei as variáveis globais GLOB_EYEPOS_X, GLOB_EYEPOS_Y, GLOB_EYEPOS_Z são as coordenadas da localização de a câmera (olhos) na janela 3D do projeto e SYMB_POS_X, SYMB_POS_Y, SYMB_POS_Z são as coordenadas da localização do objeto no espaço; abs - módulo de número (remove "-", se houver); sqr - raiz quadrada; ^ 2 - quadratura de um número.

Na janela 3D, a diferentes distâncias da câmera, a esfera será desenhada com diferentes aproximações. Para maior clareza, ativei o modo wireframe (Fig. 20).

ampliando
ampliando

Através das Variáveis Globais, o objeto pode receber: - dados sobre a localização do projeto (norte, latitude, longitude, altitude), configurados na caixa de diálogo correspondente; - piso atual e piso próprio; - o tipo da visão atual (por exemplo, nos jumpers GOST a seguinte condição é usada: se o tipo de visão é uma lista, então construa uma visão do jumper em uma seção com líderes de posição); no exemplo com treliça, pode-se adicionar a seguinte condição: se o tipo de vista for uma lista, então não gire o sistema de coordenadas, para que em qualquer caso haja uma vista frontal na lista de treliças; - exibição incompleta das construções (você pode fazer o objeto não mostrar algumas partes se apenas o núcleo for selecionado).

Você pode arrastar os dados da parede para uma janela ou objeto de porta. Os textos explicativos podem obter muitas informações diferentes sobre o elemento ao qual estão associados, por exemplo, uma caixa de seleção com camadas de uma estrutura multicamadas ou um líder com o volume de um elemento. E assim por diante, 40 páginas de variáveis globais diferentes e muito úteis. EXEMPLO 4 - marcador de zona Vamos dar uma olhada em como um marcador de zona personalizado é criado. Se você criar um novo objeto e selecionar o subtipo Zone Passport para ele na seção Detalhes, então, na seção Parâmetros, todos os parâmetros específicos que a ferramenta Zona passa para o marcador são exibidos em azul (Fig. 21).

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

Usando o comando TEXT2, você pode escrever qualquer uma dessas variáveis em um script 2D - é assim que você obtém um marcador que consiste apenas em texto (Fig. 22).

ampliando
ampliando

Usando os parâmetros gerais do marcador de zona, você pode definir o estilo do texto e a altura da linha dependendo da altura da fonte: DEFINE STYLE “ROOM” AC_TextFont_1, ROOM_LSIZE, 5.0 ESTILO “ROOM” row = ROOM_LSIZE / 1000 * GLOB_SCALE * 1.5 text2 0, row, ROOM_NUMBER text2 0, 0, ROOM_NAME text2 0, -row, ROOM_AREA Você pode criar um novo parâmetro para selecionar o tipo de marcador (Fig. 23), definir opções para ele no script de Parâmetros (Fig. 24) e no O script 2D escreve diferentes tipos de renderização de marcador para diferentes tipos.

ampliando
ampliando
ampliando
ampliando

Script 2D: se mt = "marcador com número" então text2 0, 0, ROOM_NUMBER CIRCLE2 0,0, linha endif if mt = "número e área" then text2 0, row / 2, ROOM_NUMBER text2 0, -row / 2, AREA_TEXT endif if mt = "título e área" then text2 0, row / 2, ROOM_NAME text2 0, -row / 2, AREA_TEXT endif if mt = "number, title and area" then text2 0, row, ROOM_NUMBER text2 0, 0, ROOM_NAME text2 0, -row, AREA_TEXT endif if mt = "area only" then text2 0, 0, AREA_TEXT endif Neste script, eu não usei a variável de área predefinida como uma área, mas converti a área em texto e adicionei a unidades: area = str (ROOM_AREA, 4, 2)! converter um número em texto com 2 casas decimais AREA_TEXT = area + "sq.m." ! adicionando ao valor da string as letras "sq.m." Você pode complementar as linhas do marcador com linhas separando algumas linhas. Para encontrar o comprimento de uma string, use o comando STW. Vamos adicionar no início do script: tl1 = stw (ROOM_NUMBER) / 1000 * GLOB_SCALE tl2 = stw (ROOM_NAME) / 1000 * GLOB_SCALE tl3 = stw (AREA_TEXT) / 1000 * GLOB_SCALE se mt = "número e área" então tl = MAX (tl1, tl3) se mt = “número, título e área” então tl = MAX (tl1, tl2) se mt = “título e área” então tl = MAX (tl2, tl3) se mt = “apenas área” então tl = tl3 E nas variantes dos marcadores, adicione as linhas com o comando LINE2 (Fig. 25).

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

Se o número da zona consistir em vários dígitos, para o marcador, você pode criar um parâmetro para o raio de um círculo, independente da altura da fonte, ou em vez de um círculo, descrever uma forma semelhante a uma elipse com um comprimento igual ao comprimento da linha do número da zona que encontramos anteriormente: POLY2_ 5, 1 + 2 + 4, -tl1 / 2, linha, 1, tl1 / 2, linha, 1, tl1 / 2, -row, 1001, -tl1 / 2, -row, 1, -tl1 / 2, row, 1001 Você pode adicionar um novo parâmetro para o tipo de piso (FLOOR_TYPE) e um parâmetro que permite ocultar ou mostrar (ShowFloorType), e em um script 2D adicionar um triângulo com um polilinha e texto com um tipo de piso: se ShowFloorType então ADD2 0, linha * 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 text2 0,0, FLOOR_TYPE endif Para o tipo de piso, é desejável adicionar um parâmetro separado para a caneta, bem como pontos para edição gráfica da localização do marcador de piso. Descrevi em detalhes como adicionar pontos de edição gráfica em meu webinar e, usando o link no final do artigo, você pode baixar objetos e ver como isso é implementado neste caso específico.

E, finalmente, vamos considerar outro subtipo muito importante de um objeto que abre grandes possibilidades - os Parâmetros Globais da Biblioteca (Fig. 26).

ampliando
ampliando

Um objeto com este subtipo não constrói ou desenha nada, ele define parâmetros nas vistas do modelo. Assim, você pode retirar aqueles parâmetros que gostaria de ver comuns para o objeto, mas ao mesmo tempo ser capaz de definir valores diferentes para tipos diferentes.

Vou mostrar isso com um exemplo de marcador de zona. Eu me deparei com projetos nos quais havia vários conjuntos de zonas em diferentes camadas para diferentes visualizações. Se houver necessidade de marcadores diferentes, os Parâmetros globais da biblioteca são a melhor solução.

Tenho um marcador no qual é possível definir o tipo de piso em um triângulo e alterar o tipo de marcação (fig. 27). E esses dois parâmetros são movidos para um arquivo separado do subtipo Global Library Parameters (Fig. 28).

ampliando
ampliando
ampliando
ampliando

Para que esses parâmetros sejam exibidos na caixa de diálogo Model View Parameters, é necessário registrá-los no script de interface do objeto (Fig. 29). Não vou me alongar em detalhes sobre os comandos especiais para este script; eles são descritos com detalhes suficientes e com exemplos no livro de referência. Direi apenas que aqui descrevemos onde esta ou aquela etiqueta ou botão estará localizado (um campo com uma escolha de opções, uma marca de verificação, etc.), as imagens também podem ser inseridas na Interface do Usuário. Na biblioteca padrão, quase todos os objetos possuem uma interface gráfica; você pode ver todas as possibilidades e ver como esses scripts são escritos. Além do botão Verificar, o script também possui um botão Exibir. Ao clicar nele, você pode ver rapidamente o que acontece.

ampliando
ampliando

Você pode salvar o objeto e visualizá-lo na caixa de diálogo Model View Options (Figura 30). Aqui podemos alterar o tipo de marcação de uma vez para todas as zonas do projeto (com este marcador), mas separadamente para diferentes tipos.

ampliando
ampliando

Agora, no objeto marcador de zona, você precisa consultar o objeto para os valores desses dois parâmetros. No Script Principal (que é lido primeiro pelo objeto, portanto, todos os cálculos e definições de valores que devem ser usados em vários scripts, é melhor escrever aqui) escrevo duas linhas como esta: success1 = LIBRARYGLOBAL ("LibraryGlobals20 "," ShowFloorType ", ShowFloorType) success2 = LIBRARYGLOBAL (" LibraryGlobals20 "," mt ", mt)" sucesso "será 1 se a solicitação for bem-sucedida; caso contrário, será 0.

Isso pode ser usado para escrever uma mensagem de aviso, em vez de um marcador de zona, informando que o objeto LibraryGlobals20 não foi carregado na biblioteca.

Então o objeto funciona normalmente, usando dois novos valores: se o tipo de marcação for tal e tal, escreva tal e tal, e assim por diante. Neste artigo, cobri apenas uma pequena parte dos recursos do GDL. Com sua ajuda, você pode criar elementos de design muito simples e objetos muito complexos.

Por exemplo, você está lidando com casas de painel SIP pequenas e simples. Você tem uma lista específica de opções para alterar o projeto: - o comprimento e a largura da casa podem ser de 2,4 a 24 metros com um passo de 1,2 m; - se a largura for superior a 6 m, deve haver outra parede no meio; - duas opções de alturas de piso dependendo do tamanho do painel; - número de andares - um ou dois andares; - as janelas podem estar em determinados locais de painéis de um determinado tamanho; - acabamento de fachadas em três versões; - cobertura em três versões; - espessura da parede de vários tamanhos padrão e assim por diante.

Você pode definir todos esses parâmetros para o objeto, adicionando o custo por metro quadrado do painel, telhado, decoração, etc. E em scripts 2D e 3D do objeto, construa e desenhe completamente esta casa com variáveis em vez de dimensões estáticas. Para que o usuário não se confunda em uma longa lista de parâmetros, pode-se escrever uma interface gráfica para várias páginas com fotos e diagramas. No script principal, calcule todos os volumes e exiba o custo. Também é possível exibir uma tabela com o layout dos painéis em um script 2D ao lado da planta. Escrever tal objeto levará muito tempo, você precisará elaborar uma especificação técnica detalhada, fornecer todas as nuances, mas então você receberá não apenas um objeto, mas quase um programa no qual, ao escolher os parâmetros, você pode obter um conjunto de um projeto de projeto com um cálculo de materiais e custo para o cliente. Esperançosamente, esta visão geral despertou o interesse de alguém nos recursos do GDL. Minha história começou com um grande desejo de mudar alguns pequenos detalhes em algum marcador de zona padrão, e quanto mais eu leio o guia, mais o potencial desta ferramenta, na minha opinião, muito útil para um arquiteto, é revelado. No link abaixo, você pode baixar todos os objetos que foram considerados exemplos neste artigo: Baixar exemplos Observação. ARCHICAD 20 foi usado para escrever esses objetos, portanto, eles não serão abertos nas versões anteriores. Sobre GRAPHISOFT GRAPHISOFT Company® revolucionou o BIM em 1984 com ARCHICAD® É a primeira solução BIM do setor para arquitetos do setor de CAD. GRAPHISOFT continua a liderar o mercado de software arquitetônico com produtos inovadores como BIMcloud ™, a primeira solução de design BIM colaborativo em tempo real do mundo, EcoDesigner ™, a primeira modelagem de energia totalmente integrada e avaliações de eficiência energética de edifícios e BIMx® É o aplicativo móvel líder para mostrar e apresentar modelos BIM. Desde 2007, GRAPHISOFT faz parte do Nemetschek Group.

Recomendado: