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: 391 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: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
# 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 |






