cancelar
Mostrando resultados para 
Pesquisar então 
Você quer dizer: 
cancelar
Mostrando resultados para 
Pesquisar então 
Você quer dizer: 

Archicad + Hello World Python: Numeração de vagas de estacionamento

Rita Gurjao
Community Manager
Community Manager

Este artigo foi criado por um Treinador Certificado Graphisoft Brasil 2023!

 

Convidamos os Treinadores Certificados da Graphisoft Brasil para compartilhar dicas e truques no Archicad. Neste artigo, vamos aprender com o @Diego Barreto como trabalhar com Archicad + Hello World Python.

 

Obrigada por compartilhar seu conhecimento com outros usuários apaixonados pelo Archicad.


O Python é uma linguagem de programação utilizada para automação de muitos processos e o Archicad tem suporte para isso já há algumas versões. Para quem conhece linguagem de programação, com certeza entende o potencial de uso. No entanto, para usuários iniciantes, o primeiro contato pode ser intimidador. O meu objetivo com este artigo é demonstrar como você consegue iniciar a utilizar de python sem precisar aprender a escrever um script do zero. Basta aprender a fazer leituras seletivas para modificar o que for necessário. Que tal explorarmos alguns scripts disponibilizados pela Graphisoft para conhecermos um pouco mais da linguagem Python aplicada ao Archicad? Vamos explorar o script Parking Space Numbering disponível em https://graphisoft.com/br/downloads/python. O script permite com que a numeração das vagas seja realizada de forma automática seguindo o desenho do estacionamento. Para isso usaremos o objeto Vaga de estacionamento paramétrica criado em artigo anterior, mas fique a vontade para usar tramas ou objetos nativos.

 

Explore o script Parking Space Numbering

O primeiro passo é entender como a automação funciona. Para isso vamos adicionar nossas vagas de estacionamento, sejam tramas ou objetos personalizados. O importante é que cada vaga seja independente. As vagas serão numeradas a partir de seus IDs. Para agilizar, utilizaremos um rótulo de Auto Texto com "ID do elemento".
IMAGEM1.png
Para aplicar o rótulo em todas as vagas de uma vez, selecione todas as vagas e siga para Documentação > Extras de documentação e ative "Rótulo dos elementos selecionados".
IMAGEM2.png
Como atribuímos o ID "ID" em todas nossas vagas, por enquanto teremos este texto em todas as vagas.
IMAGEM3.png
Para sequenciar as vagas, começaremos a utilizar da automação em Python. No entanto, o script disponibilizado pela Graphisoft foi feito para demonstração em inglês. Por isso, precisaremos conhecer um poucos dos comandos inseridos para modificá-los. A partir de agora exploraremos o arquivo parking_spaces.py. Vamos lá?
Com certeza o primeiro contato pode assustar, mas precisamos entender que a maior parte das linhas de texto configuram o funcionamento do sequenciamento de vagas, mas o que nos interessa são apenas 04 trechos:

  1. propertyId = acu.GetBuiltInPropertyId('General_ElementID')
    Define qual propriedade será utilizada para receber o número do sequenciamento. Neste caso, o ID do elemento. Vamos manter desta forma.
  2. propertyValueStringPrefix = 'P '
    Define o texto anterior ao número da vaga. Por padrão está P de Parking. Você pode substuir por E ou mesmo apagar o comando. Como uma boa prática de programação, prefiro não apagar os comandos originais.
    Por isso, vamos adicionar uma "#" no início da linha deste comando. Desta forma, a máquina entende que esta linha deixou de ser uma linha de código e passou a ser um comentário de programador. Algo que só será lido por humanos e não pela máquina ao executar o código.
    Em resumo nossa linha ficou assim #propertyValueStringPrefix = 'P '.
  3. ClassificationItem = acu.FindClassificationItemInSystem('ARCHICAD Classification', 'Parking Space')
    Aqui nós temos nossa principal alteração. O Script define que os únicos objetos a serem sequenciados serão itens no sistema de classificação ARCHICAD e com classificação Parking Space. Por esta razão, para que este código funcione no template básico brasileiro, o primeiro passo é alterar ARCHICAD Classification para classificação ARCHICAD. Também vamos trocar Parking Space por Vaga de Estacionamento.
    Resumindo, a linha ficou assim: classificationItem = acu.FindClassificationItemInSystem('Classificação ARCHICAD', 'Vaga de Estacionamento')
  4. return f"{propertyValueStringPrefix}{storyIndex:1d}{elemIndex:02d}". Nesta linha temos uma menção ao comando que ocultamos no passo 2. Neste caso vamos deixar o comando apenas com return f"{storyIndex:1d}{elemIndex:02d}", do contrário, a máquina tentará encontrar o texto prefixo que não está mais visível no script.

imagem4.png

Com tudo feito, basta salvar o arquivo e fechá-lo. Percebe que não precisamos nos aprofundar em construção de códigos para produzir pequenas alterações funcionais? Agora nosso script já é aplicável ao template brasileiro e você já aprendeu alguns dos comandos de python aplicado ao archicad.

De volta ao Archicad

Bem, nós não temos uma classificação Vaga de Estacionamento no template básico. Por isso, vamos em Opções > Gestor de Classificação e vamos criá-la no Archicad.
imagem5.png
Pronto! Agora basta definir todas as vagas com classificação Vaga de Estacionamento. Com suas vagas classificadas, basta abrir a paleta de Python e executar o script. Para isso, basta seguir para Janelas > Paletas > Paleta Python. Com a paleta aberta, seleciona o arquivo parking space.py editado.
imagem6.png
Por fim, basta executá-lo e pronto! Todas as vagas do seu modelo serão sequenciadas automaticamente conforme o desenho do estacionamento.
imagem7.png
Agora é com você. Sinta-se livre pra continuar explorando este script. Você pode alterar a distância entre elementos para que a automação faça outro desenho para o sequenciamento ou mesmo encontrar outras utilidades para este mesmo script como o sequenciamento numérico de um loteamento.


Chegamos ao fim do nosso artigo, mas espero que tenha sido útil e até a próxima!


Sobre o autor:

 

Diego Azevedo.jpgDiego Azevedo I @Diego Barreto 

Mestre em Arquitetura e Urbanismo pela UFRN e Arquiteto e Urbanista pela UniFacex. Trabalha como modelador e coordenador BIM pela Sal.te, desenvolvendo e gerindo modelos de construção virtual em Archicad para entregas executivas e compatibilização BIM. Auxilia escritórios no Rio Grande do Norte (presencial) e de todo o Brasil (remoto) a migrar para o software Archicad e processos BIM.

Ainda tem dúvidas?

Confira outros conteúdos na nossa Comunidade

Continue navegando

Últimas soluções nos nossos fóruns

Perguntas resolvidas