Hello! I am trying to set all properties in Appearance tab (in particular reflectivity and tint) for a generic material using Dynamo/Python nodes, but everytime I get a null result. Here my python test code to set only reflectivity 0 deg. How can I get the flag and a value for it?
Any help?
import clr
clr.AddReference(‘RevitAPI’)
from Autodesk.Revit.DB import *
clr.AddReference(‘RevitServices’)
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
doc = DocumentManager.Instance.CurrentDBDocument
def toList(obj):
if hasattr(obj, ‘iter’): return obj
else: return [obj]
assetElems = toList(UnwrapElement(IN[0]))
values = toList(IN[1])
for assetElem, value in zip(assetElems, values):
appearanceAssetId = mat.AppearanceAssetId
assetElem = doc.GetElement(appearanceAssetId)
TransactionManager.Instance.EnsureInTransaction(doc)
with Visual.AppearanceAssetEditScope(assetElem.Document) as editScope:
editableAsset = editScope.Start(assetElem.Id)
reflectivity = editableAsset[“generic_reflectivity_at_0deg”]
reflectivity.Value = value/100
editScope.Commit(True)
TransactionManager.Instance.TransactionTaskDone()
if isinstance(IN[0], list): OUT = assetElems
else: OUT = assetElems[0]