Você está aqui: 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: 285 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: ---------------------------------------------------------------------- Precisa de ajuda? Chama no WhatsApp +55 (62) 98553-6711 (Osmar) Este código foi útil? Doe R$ 5,00 e ajude-nos a manter o site no ar :-( PIX: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- # 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") # criamos uma nova transação e posicionamos a cópia do # grupo nas coordenadas indicadas pelo usuário transacao = Transaction(doc, "Copiar grupo") # iniciamos a transação transacao.Start() # copiamos o grupo selecionado pelo usuário e o colocamos no # ponto indicado doc.Create.PlaceGroup(ponto, grupo.GroupType) # fechamos a transação transacao.Commit() # e mostramos o resultado TaskDialog.Show("Aviso", "O grupo foi copiado com sucesso") # depois que o usuário fizer a seleção nós mostramos a janela do # Revit Python Shell novamente __window__.Show() __window__.Topmost = True |
![]() |
Veja mais Dicas e truques de Revit Python Shell |
Dicas e truques de outras linguagens |
VB.NET - Como retornar o tamanho de uma string em VB.NET usando a propriedade Length da classe String |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |