![]() |
|
||||
![]() 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 ::: Selection, Seleção |
Como pedir para o usuário selecionar vários elementos no Revit usando Revit Python Shell e a função PickObjects() do objeto Selection da API do RevitQuantidade de visualizações: 225 vezes |
Nesta dica mostrarei como podemos usar a função PickObjects() do objeto Selection da API do Revit e o Revit Python Shell para pedir ao usuário que selecione vários elementos na área de desenho do Revit e então efetuar alguma operação envolvendo todos eles, de uma só vez. Veja que o objeto Selection é retornado a partir de um UIDocument, que é obtido a partir do ActiveUIDocument, representado pela variável uidoc. Então nós chamamos a função PickObjects(), fornecendo o parâmetro ObjectType.Element e guardamos as referências retornadas como um objeto IList (representado pela variável selecionados). O passo seguinte é acessar a propriedade Count da IList para mostrar a quantidade de objetos selecionados. Note que é preciso clicar o botão Concluir (fica entre o botão Cancelar e a caixa de seleção Múltiplo) para indicar que o usuário concluiu a seleção e nosso código poder prosseguir. 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() try: # e finalmente esperamos que o usuário selecione um ou # mais elementos e os guardamos em uma lista selecionados = uidoc.Selection.PickObjects(ObjectType.Element) ...... Ao executar este código Revit Python Shell nós teremos o seguinte resultado: Você selecionou 2 elementos. |
![]() |
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 |
MySQL - Como adicionar horas ao valor de um campo DATETIME ou TIME usando a função ADDTIME() do MySQL |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |