Publicado em Revit

Famílias de portas e janelas dobráveis, e o desafio de criá-las

Aprender a criar suas próprias famílias no Revit é essencial, muitas vezes bastam poucos minutos para se criar o que necessitamos, mais rápido até do que procurar por dezenas de sites atrás de uma família que muitas vezes não atende nossa necessidade.

Além disso ao criarmos famílias aprendemos a trabalhar mais profundamente no programa e muito desse aprendizado podemos levar aos nossos projetos. Essa é uma família mais complexa, com uso de fórmulas e condições, criar essa família foi mais um desafio pessoal, quando comecei a aprender o Revit tentei de várias formas criar uma família de porta com painéis dobráveis em que pudesse escolher quantidade de painéis e sua abertura.

Então fica aqui, a crônica de como quebrei a cabeça para resolver essa família.

Para iniciar resolvi utilizar os modelos de painéis do último post, além dos parâmetros de dimensão esse painel também contém a vantagem de ser um modelos genérico, e posso utilizar o mesmo em diversas famílias. Primeiramente tentei criar do mesmo modo da família de cavalete que postei em um tópico passado, mas encontrei um problema onde mesmo que pudesse abrir e fechar totalmente o painel, depois, qualquer mudança nessa abertura acusava um erro.

Então testei outro modo, um conhecido método de criar portas com abertura usando uma linha de referência e uma cota com um ângulo.

Coloquei então o modelo genérico do painel em uma família de modelos genéricos com base em face para poder colocar o modelo no plano de trabalho da linha, então carreguei o modelo e o coloquei na linha, mas conforme mudava o ângulo a família se movia pela linha, então criei outra linha perpendicular a primeira, defini um ângulo de 90º e alinhei a família com base nela. Assim como na imagem abaixo:

1.jpg

Tentei criar outra família onde faria a matriz/array dessa mas descobri (depois de horas tentando) que deste modo não poderia usar o ângulo como parâmetro. Para isso eu teria que colocar a família diretamente na de portas, carreguei a família e inserir no modelo de família de portas.

Sabendo que o mínimo de painéis para criar uma porta dobrável é 2, um de cada lado, e que não é possível fazer matriz/array com menos de dois elementos, eu teria então dois painéis que não seriam criados com uma matriz/array. Foquei primeiramente nesses dois painéis, colocando um parâmetro de visibilidade para aparecerem apenas quando o número de painéis for 2. A largura do painel é simples, sendo o tamanho total da porta, menos a espessura do batente, dividido pela quantidade de painéis, nestes caso 2.

Problema foi encontrar a distância (na imagem o parâmetro D) correta para a colocação do próximo painel pois essa distância muda conforme o ângulo de abertura, então lembrei das aulas de geometria da faculdade e sabendo que cada painel forma um triângulo como na imagem abaixo, posso usar algumas relações trigonométricas.

2

Sabendo que a hipotenusa é igual a largura do painel e o ângulo do triângulo é igual ao ângulo de abertura, posso descobrir o cateto adjacente usando a relação cossenoθ = cateto adjacente/hipotenusa, como eu quero cateto adjacente no Revit a fórmula se tornou: cos(Ângulo do painel) * Painel largura.

Agora com os dois painéis prontos comecei a trabalhar na matriz/array para quando eu tivesse mais do que dois painéis, dupliquei o tipo de painel pois agora a largura desses seria a largura total menos o batente dividido pela quantidade de painéis.

Aqui surgiu um problema, como eu teria vários painéis e no modelo do painel com ângulo de abertura o plano de trabalho passa exatamente pelo lado interno do painel eu deveria descobrir qual a distância do ponto interno até o ponto externo (DD) para evitar que um painel entrasse dentro do outro, para isso usei a mesma relação para achar o cateto adjacente, mas nesse caso a hipotenusa sendo a espessura do contorno do painel, e o ângulo sendo 180º – 90º referentes a linha perpendicular – ângulo de abertura do painel, no Revit a fórmula se tornou: cos(180° – 90° – Ângulo do painel) * Contorno espessura. Duplicando essa valor (DD1) eu tenho a distância entre os dois pontos internos, que contém os planos de trabalho que posso alinhar.

3.jpg

Então criei duas matrizes/array, uma para os painéis da esquerda e outra para os da direita, o número de cópias seria a quantidade de painéis dividido por dois, mas sabendo que se eu colocasse um valor ímpar para o número de painéis a matriz/array da direita teria que ter um a menos que o da esquerda eu usei a função “rounddown” que arredonda o valor para baixo.

Até aqui sem problemas, mas e se eu quiser 3 painéis? A matriz/array da direita só poderia ter um, como isso não é possível eu coloquei outro painel sozinho e alinhei onde seria o primeiro painel da direita, defini o mesmo um parâmetro de visibilidade onde o mesmo só apareceria quando o número de painéis fosse igual a 3. Para os outros painéis também criei parâmetros de visibilidade com base na quantidade de painéis, mas usei condições em cada um, que explicarei melhor.

Sabendo que quando eu definisse a quantidade de painéis como 2 eu só veria os dois originais, no parâmetro de visualização desses painéis eu criei uma função IF, que retorna um valor com base em uma condição “se algo for verdadeiro, faça isso, caso contrário faça isso”. E para ligar ou desligar a visualização usei uma regra de falso ou verdadeiro.

A fórmula se tornou: if(Quantidade de paineis = 2, 2 > 1, 2 < 1)

Explicando mais detalhadamente, se a quantidade de painéis for igual a 2, 2 é maior que 1 então é verdadeiro e vai ativar a visualização dos painéis, se não, então 2 é menor que 1, o que é falso e vai desativar a visualização. Condições foram definidas em todos os parâmetros de visualização, no caso dos direitos e esquerdos eu incluí outra condição com a função “and” pois além da quantidade de painéis ser maior que 2 o número desses painéis também deveria ser maior que dois.

Se tornando: if(and(Quantidade de paineis > 2, Esquerdos > 1), 2 > 1, 2 < 1)

Também incluí essas condições na quantidade de painéis esquerdos e direitos para o valor nunca ser menor do que 2, algo que acarretaria em um erro. Ao final os parâmetros ficaram um pouco bagunçados, e talvez deva existir um modo mais fácil de chegar ao mesmo resultado. Mas finalmente consegui deixar essa família como eu gostaria.

Em todos os testes que realizei o único erro que encontrei é ao definir um tamanho muito exagerado para a largura do contorno ou para a largura do detalhe, o que causa um problema na família do painel, também poderia incluir condições na família do painel para evitar isso mas não vi necessidade pois para se chegar a esse erro o painel fica com medidas bastante irreais.

4.jpg

As versões duplas, com painéis de cada lado, foram feitas apenas espelhando os planos de trabalho, aplicando as cotas com parâmetros, alinhando novamente os elementos e modificando os parâmetros já que existiam dividindo novamente a largura dos painéis por 2. As janelas são basicamente os mesmos parâmetros só que dentro da família de janelas.

As famílias podem ser baixadas pelos links abaixo:

Janela

https://drive.google.com/open?id=0B2v56Ec5d0z1OFlqNUtFNGFGU2s

Janela dupla

https://drive.google.com/open?id=0B2v56Ec5d0z1SXM3SUVxVUxCLUE

Porta

https://drive.google.com/open?id=0B2v56Ec5d0z1VE9PdTNjenZpcVk

Porta dupla

https://drive.google.com/open?id=0B2v56Ec5d0z1OFJDWWhIZnhGdU0

Abaixo um render com os painéis abertos e fechados.

1

2.jpg

 

 

 

 

 

3 comentários em “Famílias de portas e janelas dobráveis, e o desafio de criá-las

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s