Etiquetar planos automáticamente con #Dynamo#Python

Una de las actividades más tediosas en la oficina, sin duda es etiquetar planos. No obstante, es una de las que más «valor» productivo aporta a la hora de un enfoque práctico de dynamo.

Basado en el tutorial http://learndynamo.com/mod3/   [Tag Plans By Sheet] en la web http://learndynamo.com/ de Jeremy Graham podemos etiquetar por categoría todos las vistas en planos de nuestro proyecto.

Usando dos nodos de python aumentamos enormemente el potencial de un scritp con nodos standard de dynamo.

  • En la primera parte del script hacemos un filtro de los planos y vistas que necesitamos.
  • En la segunda parte en base a la categoría que seleccionamos podemos etiquetar según una familia y tipo de etiqueta que deseemos todas las vistas anteriormente filtradas.

En el primer nodo python mediante una lista y un bucle obtenemos 3 listas ( sheet , sheet.name, sheet.numbers) . Es un nodo sencillo y práctico para ordenar los datos que necesitaremos más adelante.

# Enable Python support and load DesignScript library
import clr
clr.AddReference("RevitAPI")
clr.AddReference("RevitServices")
clr.AddReference("RevitNodes")
import RevitServices
import Revit
import Autodesk
from Autodesk.Revit.DB import *

from RevitServices.Persistence import DocumentManager

#variables y obtención de documento

doc = DocumentManager.Instance.CurrentDBDocument

toggle =IN[0]
out = []
sheets= []
snames= []
snumbers= []

# Place your code below this line

if toggle == True:
	
	collector = FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Sheets).OfClass(ViewSheet)
	
	for i in collector:
	
		sheets.append(i)
		
		snames.append(i.get_Parameter(BuiltInParameter.SHEET_NAME).AsString())
		
		snumbers.append(i.get_Parameter(BuiltInParameter.SHEET_NUMBER).AsString())
		
out.append(sheets)
out.append(snames)
out.append(snumbers)

# Assign your output to the OUT variable.
OUT = out

En el segundo nodo python ,este si más complejo, obtenemos lo siguiente:

  1. Obtenemos los ids de los elementos de la categoría seleccionada en las vistas filtradas previamente y obtenemos todos los datos de bounding box y posicion de los elementos para etiquetarlos.
  2. Creamos los tag y los ubicamos ( sólo necesitaremos tres inputs ( familia y tipo + posición y longitud del leader de nuestras etiquetas).

Gracias a Jeremy Graham por su labor divulgativa en su página http://learndynamo.com/ 

Publicado por David Carreras

Ingeniero de edificación y arquitecto técnico con experiencia en los siguientes campos de edificación y obra : - Gestión y coordinación de proyectos y obras de construcción. Control de calidad y plazos comprometidos. - Control de documentación en obra. Presupuestos , mediciones, calidad, PRL. - Supervisión de ejecución de acabados , estructuras e instalaciones. - Modelado, coordinación virtual , gestión, mediciones, simulación y cálculo de proyectos de construcción mediante herramientas BIM. - Redacción de informes y peritajes. Consultoría especializada en edificación. - Gestión de licencias y permisos de obra. - Supervisión de contratas y subcontratas. Comunicación entre todos los agentes de la obra. - Eficiencia energética. Proposición de soluciones técnicas. Mejora y optimización de proyectos.

2 comentarios sobre “Etiquetar planos automáticamente con #Dynamo#Python

    1. Hola Alberto, estoy revisando el código con Revit 2019 y de momento la primera parte del script me funciona. ( el collector de sheets, lo he actualizado con el codigo por si lo quieres copiar).

      La segunda parte estoy en ello, parece que hay algunos problemas con «create tag» , por que ha cambiado en el API y ahora se llama «create independent tag» , https://www.revitapidocs.com/2019/b8e8eec2-8e3b-08f2-a9a5-89f24465c8b9.htm.

      Lo investigaré a ver si lo resuelvo para actualizarlo. = )

      Me gusta

Deja un comentario

Diseña un sitio como este con WordPress.com
Comenzar