Modify the Material ThermalConductivity Parameter

I am passing in a WallType and then using the following:

walltype = UnwrapElement(IN[0])
wallCS = walltype.GetCompoundStructure()
layers = wallCS.GetLayers()

for layer in layers:
MaterialID = layer.MaterialId
Material = doc.GetElement(MaterialID)
ThermalAssetID = Material.ThermalAssetId
PropertySetElement = doc.GetElement(ThermalAssetID)
thermalass = PropertySetElement.GetThermalAsset

I would like to then get the ThermalConductivity of the thermalass, however I dont get access to this.

Has anyone had any success driving the Thermal Conductivity of a material within Python/Dynamo?



Hello djarvis!

Maybe this will work for you: ( be careful not to start variable names with capital letters )

import clr

# Import RevitAPI
import Autodesk
from Autodesk.Revit.DB import *

# Import DocumentManager and TransactionManager
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager

doc = DocumentManager.Instance.CurrentDBDocument

walltype = UnwrapElement(IN[0])
wallCS = walltype.GetCompoundStructure()
layers = wallCS.GetLayers()

thermalcondList = []

for layer in layers:
	materialID = layer.MaterialId
	material = doc.GetElement(materialID)
	thermalAssetID = material.ThermalAssetId
	propertySetElement = doc.GetElement(thermalAssetID)
	thermalass = propertySetElement.GetThermalAsset()
	thermalcond = thermalass.ThermalConductivity

OUT = [thermalcondList]

PS: You can format your code with this button: