SetParameterByName to wall object in Python

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:.

image

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!