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/ 

2 respuestas para “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

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s