Hi All,
I have a little question. I have this short Python that does 2 tasks:
- Corrects the level name according to my criteria.
- Assign a determined RebarCoverType to the wall elements collected.
The last task I can’t to get it done, I have this message:.
The Code:
import clr
clr.AddReference('RevitNodes')
import Revit
#importa el ToProtoType y ToRevitType
clr.ImportExtensions(Revit.GeometryConversion)
clr.AddReference('ProtoGeometry')
import Autodesk.DesignScript.Geometry
from Autodesk.DesignScript.Geometry import *
#Importar el Docuement Manager y Transacciones
clr.AddReference('RevitServices')
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
clr.AddReference('System')
from System import *
#Importar la API de Revit
clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *
clr.AddReference('DSCoreNodes')
from DSCore import *
# Datos de entrada
EntradaTonta = IN[0] #Solo se deja para que funcione el Passthrough.
# Hacer referencia al documento activo.
doc = DocumentManager.Instance.CurrentDBDocument
# Crear un colector de los elementos para ciertas categorias (http://www.revitapidocs.com/2017.1/ba1c5b30-242f-5fdc-8ea9-ec3b61e6e722.htm)
collectorLevels = FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Levels)
collectorWalls = FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Walls)
collectorRebarCover = FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_CoverType)
# Inicia la transaccion
TransactionManager.Instance.EnsureInTransaction(doc)
# Genera una lista con todos los
PisosRevit = []
for i in collectorLevels:
if not ('LevelType' in str(i)):
if 'FUNDACION' in i.Name:
i.Name = 'PLANTA DE FUNDACIONES'
elif ' ' in i.Name:
i.Name = (i.Name).Replace(' ', '')
# Finaliza la transaccion
TransactionManager.Instance.TransactionTaskDone()
Muros = []
for i in collectorWalls:
if not ('WallType' in str(i)):
Muros.append(i)
RebarCover = []
for i in collectorRebarCover:
RebarCover.append(i)
# Aplica recubrimientos en todos los elementos muro.
for wall in Muros:
muro = wall
muro.SetParameterByName("Rebar Cover - Exterior Face", RebarCover[8])
muro.SetParameterByName("Rebar Cover - Interior Face", RebarCover[8])
muro.SetParameterByName("Rebar Cover - Other Faces", RebarCover[8])
OUT = []
I know that I’m missing something here, Cold you help me with this please?
Thanks in advance for your time.
Cheers!