![]() |
|
||||
![]() Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Você está aqui: Revit Python Shell ::: Dicas & Truques ::: Paredes - Walls |
Como criar paredes no Revit usando a função Create() da classe Wall e o Revit Python ShellQuantidade de visualizações: 219 vezes |
Nesta dica mostrarei como podemos criar uma nova parede no Revit usando a API do Revit e o Revit Python Shell. Para isso usaremos a função Create() da classe Wall e forneceremos uma referência ao documento atual, a linha geométrica, o id do nível no qual a nova parede será inserida e informaremos se a parede será do tipo parede estrutural. Em outras dicas no site eu mostrei como podemos pesquisar um nível no documento Revit e retornar o seu id. Revise estas dicas caso tiver dúvidas a respeito disso. Nesse exemplo eu coloquei o id do nível como um inteiro fixo e o usei para criar um novo ElementId. A linha geométrica para posicionar a parede foi criada a partir de dois elementos XYZ, com suas coordenadas x, y e z. Finalmente, após a criação da nova parede nós exibiremos o seu id. Se a parede não puder ser criada o id -1 (ElementId.InvalidElementId) é retornado para nos avisar de que a operação não foi bem sucedida. A versão da função Create() da classe Wall que usei neste exemplo vai usar o tipo padrão de parede, a saber, o Parede básica Generic - 200mm. Veja o código Revit Python Shell completo para o exemplo: # faz os imports necessários from Autodesk.Revit import DB, UI # vamos obter uma referência ao Document ativo doc = uidoc.Document # o primeiro passo é obter o id do nível no qual a parede # vai ser colocada id_nivel = ElementId(694) # agora criamos a linha geométrica na qual a parede será # alinhada ponto_a = XYZ(0, 0, 0) ponto_b = XYZ(50, 0, 0) # criamos a linha linha = Line.CreateBound(ponto_a, ponto_b) # iniciamos a transação transacao = Transaction(doc, "Como criar paredes no Revit") ...... Ao executar este código Revit Python Shell nós teremos um resultado parecido com: A nova parede foi criada com o ID 360297 |
![]() |
Revit Python Shell ::: Dicas & Truques ::: Selection, Seleção |
Como pedir para o usuário selecionar somente um elemento no Revit usando a função PickObject() do objeto Selection do Revit Python ShellQuantidade de visualizações: 262 vezes |
Nesta dica mostrarei como podemos usar a função PickObject() do objeto Selection do Revit Python Shell para pedir para o usuário selecionar somente um elemento na área de desenho do Revit. Note que o objeto Selection é obtido a partir do objeto uidoc, carregado automaticamente pelo Revit Python Shell. Depois que o usuário seleciona o elemento, nós usamos a função doc.GetElement() para receber a referência ao elemento e convertê-la para um elemento real. Então, para finalizar, nós acessamos a propriedade Id do elemento e a exibimos na tela. Veja o código Revit Python Shell completo para o exemplo: # faz o import necessário from Autodesk.Revit.UI.Selection import ObjectType # precisamos ocultar a janela do Revit Python Shell __window__.Hide() # agora fazemos uma chamada à função PickObject() do objeto Selection e retornamos # uma Reference selecionado = uidoc.Selection.PickObject(ObjectType.Element, "Selecione um elemento") # depois que o usuário fizer a seleção nós mostramos a janela do ...... Ao executar este código Revit Python Shell nós teremos o seguinte resultado: O id do elemento selecionado é: 359410 Veja como usei as funções __window__.Hide(), __window__.Show() e __window__.Topmost = True para ocultar a janela do Revit Python Shell e exibí-la novamente depois que o usuário fizer a seleção do elemento. Sem essas funções essa operação não pode ser realizada. |
Revit Python Shell ::: Dicas & Truques ::: Grupos - Groups |
Como copiar grupos no Revit usando a função Create.PlaceGroup() e o Revit Python ShellQuantidade de visualizações: 241 vezes |
O código que apresento nesta dica mostra como podemos pedir para o usuário selecionar um grupo na área de desenho do Revit e, em seguida, usando a API do Revit e o Revit Python Shell, criar uma cópia do grupo escolhido e posicioná-la em um ponto escolhido pelo usuário. Em realidade, este código é o mesmo apresentado no tutorial "Como criar seu primeiro plug-in no Revit usando a Revit C# API" da documentação oficial fornecida pela Autodesk. O que fiz foi modificar o código para usar Revit Python Shell em vez de C#, como mostrado no tutorial. O primeiro passo é importar o objeto ObjectType a partir do módulo Autodesk.Revit.UI.Selection. Em seguida nós usamos __window__.Hide() para que o foco vá para a janela do Revit. Isso é necessário para que o usuário possa selecionar um grupo usando uidoc.Selection.PickObject. Note que coloquei uma mensagem TaskDialog.Show() chamando a atenção do usuário para esta tarefa. Como a função PickObject() retorna um objeto Reference, nós precisamos fornecer essa referência para a função doc.GetElement() e assim obter o elemento real que queremos manipular. Então, o passo seguinte é pedir para o usuário indicar um ponto na tela de desenho do Revit usando a função uidoc.Selection.PickPoint(). Esta função vai nos retornar um objeto da classe XYZ da API do Revit. Depois que o usuário selecionar o grupo e o ponto, nós criamos uma nova transação usando Transaction(doc, "Copiar grupo") e a iniciamos com uma chamada à sua função Start(). Então, para concluir, basta uma chamada à doc.Create.PlaceGroup(ponto, grupo.GroupType) e verificar o resultado na tela de desenho do Revit. Veja o código Revit Python Shell completo para o exemplo: # faz o import necessário from Autodesk.Revit.UI.Selection import ObjectType # precisamos ocultar a janela do Revit Python Shell __window__.Hide() # agora fazemos uma chamada à função PickObject() do objeto Selection e retornamos # uma Reference TaskDialog.Show("Aviso", "Selecione um grupo") selecionado = uidoc.Selection.PickObject(ObjectType.Element, "Selecione um grupo") # obtemos o grupo a partir de sua referência usando a função # GetElement() do objeto Document grupo = doc.GetElement(selecionado) # vamos pedir para o usuário selecionar um ponto na área de # desenho do Revit TaskDialog.Show("Aviso", "Selecione um ponto") ponto = uidoc.Selection.PickPoint("Selecione um ponto para posicionar o grupo") ...... |
Veja mais Dicas e truques de Revit Python Shell |
Dicas e truques de outras linguagens |
VB.NET - Como comparar strings em VB.NET usando o método Equals() da classe String do .NET Framework C# - Como adicionar conteúdo ao final de um arquivo em C# usando as classes FileStream e StreamWriter JavaScript - Como usar objetos Set em seus códigos JavaScript |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |