Here’s a simple example that shows how to use the Arnold Python API to get the metadata for node parameters.
from arnold import *
AiBegin()
nentry = AiNodeEntryLookUp("standard_surface")
print( AiNodeEntryGetName( nentry ) );
pit = AiNodeEntryGetParamIterator(nentry)
while not AiParamIteratorFinished(pit):
pentry = AiParamIteratorGetNext(pit)
pname=AiParamGetName(pentry)
mit = AiNodeEntryGetMetaDataIterator(nentry, AiParamGetName(pentry))
while not AiMetaDataIteratorFinished(mit):
mdentry = AiMetaDataIteratorGetNext(mit)
if (mdentry.contents.type == AI_TYPE_INT):
print( "{}.{}={}".format( pname, mdentry.contents.name,mdentry.contents.value.INT ) )
elif (mdentry.contents.type == AI_TYPE_BOOLEAN):
print( "{}.{}={}".format( pname, mdentry.contents.name,mdentry.contents.value.BOOL ) )
elif (mdentry.contents.type == AI_TYPE_STRING):
print( "{}.{}={}".format( pname, mdentry.contents.name,mdentry.contents.value.STR ) )
AiMetaDataIteratorDestroy(mit)
AiParamIteratorDestroy(pit)
AiEnd()