Saltar al contenido
Especialista3D

Create Ceiling, Crear techo API de Revit: Python | Especialista3D

Crear Techos Python Revit API

Cómo automatizar la creación de techos en Revit: desde Revit 2022. Utiliza: Ceiling Create en Python

Buenas buenas. Probablemente si acabas de aterrizar en este post sea después de consultar los foros de Dynamo y comprobar que la mayoría de los posts te dicen: «oye, que no, que no se pueden crear techos en Dynamo».

Pues déjame decirte que la mayor parte de esos posts están obsoletos, jefe del BIM: caput, viejos, deprecated. ¿Por qué? Pues porque desde la versión de Revit 2022 sí se pueden crear techos con la API.

Te indico dónde está el método para crearlos que es este: Ceiling.Create.

Show me how: tutorial de creación de techo con Python y Dynamo en Revit

Como ya sabes en Especialista3D preferimos enseñarte un ejemplo que contártelo así que vamos con ello. En este vídeo tienes un caso práctico de cómo crear un techo con el método de Create.Ceiling:

 

Echa un vistazo al curso de Python de Especialista3D

El script: Create Ceiling Python Revit API en Dynamo

Ojo: este script solo te funcionará a partir de la versión de Revit 2022. Antes de esta versión el método de Create.Ceiling simplemente no era accesible en la API de Revit

# Carga las bibliotecas de DesignScript y normas de Python.
import sys
import clr
sys.path.append(‘C:\Program Files(x86)\IronPython 2.7\Lib’)
clr.AddReference(‘ProtoGeometry’)

#documento
clr.AddReference(‘RevitServices’)
import RevitServices
from RevitServices.Persistence import DocumentManager

#Ceiling
clr.AddReference(‘RevitAPI’)
from Autodesk.Revit.DB import *

clr.AddReference(«RevitNodes»)
import Revit
clr.ImportExtensions(Revit.Elements)
clr.ImportExtensions(Revit.GeometryConversion)

from Autodesk.DesignScript.Geometry import *
from RevitServices.Transactions import TransactionManager

clr.AddReference(«System»)
from System.Collections.Generic import List

# Las entradas de este nodo se almacenan como lista en las variables IN.
listaCurvasDyn = UnwrapElement(IN[0])
elementoTecho = UnwrapElement(IN[1])
level= UnwrapElement(IN[2])
tipoTecho=IN[3]
# Incluya el código debajo de esta línea

doc= DocumentManager.Instance.CurrentDBDocument
TransactionManager.Instance.EnsureInTransaction(doc)
ceilingTypeId = elementoTecho.GetTypeId()
tipo = doc.GetElement(ceilingTypeId)
levelId=level.Id

techos=[]

listaCurvasApi=[]
for curvaDyn in listaCurvasDyn:
a= curvaDyn.ToRevitType()
listaCurvasApi.append(a)
curvaLoop= CurveLoop.Create(listaCurvasApi)
loop= [curvaLoop]
#pasar curvas de dynamo a revit
techo=Ceiling.Create(doc,loop,ceilingTypeId,levelId)

TransactionManager.Instance.TransactionTaskDone()

# Asigne la salida a la variable OUT.
OUT = techo

Echa un vistazo al curso de Python de Especialista3D

CC BY-NC 4.0 Create Ceiling, Crear techo API de Revit: Python | Especialista3D por Especialista3D está licenciado bajo una Licencia Creative Commons Atribución-NoComercial 4.0 Internacional.