View Full Version : Accessing Custom Attributes Paramblock

01 January 2009, 10:20 AM
Hi all,

I have a problem accessing certain parts of a parameters block within a custom attributes.
For e.g. I want to know the type setting of a parameter inside the parameters block. Is there anyway I can access it? I need this as I need to know if a parameter even thou the value is in float, is it in radian(#float) or degree(#angle).

Thanks in advanced. :)

01 January 2009, 01:03 PM
either parse the source, or use the pblock definition?

a = custattributes.getDef $ 1
custAttributes.getDefSource a
"attributes test (
parameters main (
rad type:#float
deg type:#angle
custAttributes.getPBlockDefs a
#(#(#main, 0, 0, #(), #(#rad, #(#type, #float)), #(#deg, #(#type, #angle))))

or, if bored, parse the output of showproperties:

showproperties $.test
.rad : float
.deg : angle

01 January 2009, 03:46 AM
Thanks for helping this out. I was hoping there's some better or more elegant way of doing this. Accessing the Paramblock definition really doesn't seems that neat to me but oh well, it works.

01 January 2009, 09:53 AM
Custom Attributes Definition Values

mapped fn custAttribute_showPBlockDefs obj =


format "%\n"

for objDef in (custAttributes.getDefs obj) do


format "\t%\n" objDef

format "\tname: %\n"

format "\tattribute id: %\n" objDef.attribID

format "\tParameter Blocks:"

pbArray = custAttributes.getPBlockDefs objdef

for a = 1 to pbArray.count do


itms = pbArray[a]

format "\n\t\tname = %\n" itms[1]

format "\t\tid = %\n" itms[2]

format "\t\towners reference number = %\n" itms[3]

keywordParams = itms[4]

format "\t\tparameter block keywords:\n"

for x = 1 to keywordParams.Count/2 do


format "\t\t\t% = %\n" keywordParams[x] keywordParams[x+1]

x = x+1


format "\t\tparameters:"

for y = 5 to itms.Count do


format "\n\t\t\t#name = %\n" itms[y][1]

for z = 1 to itms[y][2].Count by 2 do


format "\t\t\t% = %\n" itms[y][2][z] itms[y][2][z+1]






CGTalk Moderation
01 January 2009, 09:53 AM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.