Você está aqui: Revit Python Shell ::: Dicas & Truques ::: Element, Class Element |
Como retornar a caixa delimitadora (BoundingBox) de um elemento do Revit usando a função get_BoundingBox() da API do Revit e o Revit Python ShellQuantidade de visualizações: 325 vezes |
Cada elemento do Revit (aqueles que descendem da classe Element) possuem uma caixa retângular 3D associada a eles. Esta caixa delimitadora (ou BoundingBox) tridimensional apresenta as coordenadas de localização e orientação do elemento. Um uso muito interessante da caixa delimitadora de um elemento do Revit é quando queremos calcular a área ou volume de uma parede via programação. Nas dicas de Revit Python Shell aqui do site você encontrará exemplos de como isso pode ser feito. Para retornar a BoundingBox associada a um elemento, nós só precisamos efetuar uma chamada à função get_BoundingBox() do elemento desejado. Isso vai nos retornar um objeto da classe BoundingBoxXYZ. Veja um trecho de código Revit Python Shell no qual pedimos para o usuário selecionar uma parede e retornamos a caixa delimitadora associada. Note o uso das propriedades Max e Min para retornar os pontos máximos e mínimos da BoundingBoxXYZ retornada: # faz o import necessário from Autodesk.Revit.UI.Selection import ObjectType # precisamos ocultar a janela do Revit Python Shell __window__.Hide() # agora mostramos uma mensagem para o usuário selecionar uma # parede TaskDialog.Show("Aviso", "Selecione uma parede") # obtemos uma referência ao objeto Selection do # UIDocument ativo selecao = uidoc.Selection # e finalmente esperamos que o usuário selecione o elemento selecionado = selecao.PickObject(ObjectType.Element, "Selecione uma parede") # agora testamos se o usuário realmente selecionou um # elemento if selecionado != None: # vamos obter o elemento selecionado a partir da # referência parede = doc.GetElement(selecionado) # vamos obter o elemento BoundingBoxXYZ bounding_box = parede.get_BoundingBox(None) # vamos obter as informações da BoundingBoxXYZ # primeiro o ponto mínimo (canto esquerdo inferior e # a parte de trás da caixa delimitadora) ponto_minimo = bounding_box.Min # agora o ponto máximo (canto direito superior e # a parte da frente da caixa delimitadora) ponto_maximo = bounding_box.Max print("Você selecionou uma parede.") print("O ponto geométrico mínimo da caixa é: X = {0}; Y = {1}; Z = {2}".format( ponto_minimo.X, ponto_minimo.Y, ponto_minimo.Z)) print("O ponto geométrico máximo da caixa é: X = {0}; Y = {1}; Z = {2}".format( ponto_maximo.X, ponto_maximo.Y, ponto_maximo.Z)) # depois que o usuário fizer a seleção nós mostramos a janela do # Revit Python Shell novamente __window__.Show() __window__.Topmost = True Ao executar este código Revit Python Shell nós teremos o seguinte resultado: Você selecionou uma parede. O ponto geométrico mínimo da caixa é: X = 11.18515491529932; Y = 4.5868046877840216; Z = 18.044619422573337 O ponto geométrico máximo da caixa é: X = 25.292766463855756; Y = 5.2429726667866916; Z = 44.291338582678321 |
![]() |
Veja mais Dicas e truques de Revit Python Shell |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |