AttributeDictionary

class AttributeDictionary

Parent: Object | Class Index
Methods: [], []=, delete_key, each, each_key, each_pair, keys, length, name, size, values |
Sample Code: attrdicttests.rb |

The AttributeDictionary class allows you to attach arbitrary collections of attributes to a SketchUp entity. The attributes are defined by key/value pairs where the keys are strings. An Entity or Model object can have any number of AttributeDictionaries.

Instance Methods

[]
The get value method is used to retrieve the attribute with a given key.
Syntax:
value = attributedictionary ["key"]
Arguments:
"key" - the name of the attribute
Return Value:
value - the value associated with the "key" if successful
Comments:
Example:

model = Sketchup.active_model
value = model.set_attribute "testdictionary", "test", 115
attrdicts = model.attribute_dictionaries
attrdict = attrdicts["testdictionary"]
value = attrdict["test"]

if (attrdict)
UI.messagebox value
else
UI.messagebox "Failure"
end

[]=
The set value ([]=) method is used to set the value of an attribute with a given key.
Syntax:
value = attributedictionary[“key"]=value
Arguments:
“key” – the valid key value – the value to be set
Return Value:
value – the value that was set if successful, or false if unsuccessful.
Comments:
Creates a new attribute for the given key if needed.
Example:

model = Sketchup.active-model
value = model.set_attribute "testdictionary", "test', 115
attrdicts = model.attribute_dictionaries
attrdict = attrdicts["testdictionary"]
value = attrdict["test2"]=120
if (value)
UI.messagebox value

else
UI.messagebox "Failure"
end

delete_key
The delete_key method is used to delete an attribute with a given key.
Syntax:
value = attributedictionary.delete_key “key”
Arguments:
“key” – the key to be deleted
Return Value:
value – the value of the key that was deleted if successful
Comments:
Example:
attrdict = attrdicts[“testdictionary”] value = attrdict.delete_key(“testkey”)

each
The each method is used to iterate through all of the attributes.
Syntax:
attributedictionary.each { | key, value | … }
Arguments:
key, value – variables that will hold each key and value as they are found.
Return Value:
Comments:
Throws an exception if there are no keys.
Example:
dictionaries = model.attribute_dictionaries # iterates through all attributes and prints the key to the screen attrdict.each { | key, value | UI.messagebox key }

each_key
The each_key method is used to iterate through all of the attribute keys.
Syntax:
attributedictionary.each { | key | … }
Arguments:
key– a variable that will hold each key as they are found.
Return Value:
Comments:
Throws an exception if there are no keys.
Example:
dictionaries = model.attribute_dictionaries # iterates through all attributes and prints the key to the screen attrdict.each_key { | key | UI.messagebox key }

each_pair
An alias for each. See AttributeDictionary.each
Syntax:
attributedictionary.each_pair {|key, value | ...}
Arguments:
key, value – variables that will hold each key and value as they are found.
Return Value:
Comments:
Throws an exception if there are no keys.
Example:
dictionaries = model.attribute_dictionaries # iterates through all attributes and prints the key to the screen attrdict.each_pair { | key, value | UI.messagebox key }

keys
The keys method is used to retrieve an array with all of the attribute keys.
Syntax:
keys = attributedictionary.keys
Arguments:
Return Value:
keys – an array of keys within the attribute dictionary if successful
Comments:
Example:

keys = attrdict.keys

if (keys)
# display first key in the array
UI.messagebox keys[0]
else
# code to handle no keys
end

length
An alias for size. See AttributeDictionary.size.
Syntax:
length = attributedictionary.length
Arguments:
Return Value:
length – the length (size) of the attribute dictionary.
Comments:
Example:

length = attrdict.length

if (length)
UI.messagebox length
else
# code to handle no attributes
end

name
The name method is used to retrieve the name of an attribute dictionary.
Syntax:
name = attributedictionary.name
Arguments:
Return Value:
name – the name of the attribute dictionary if successful
Comments:
Example:

name = attrdict.name

if (name)
UI.messagebox name
else
# code to handle no keys
end

size
The length method is used to retrieve the size (number of elements) of an attribute dictionary.
Syntax:
size = attributedictionary.size
Arguments:
Return Value:
size – the size of the attribute dictionary if successful
Comments:
Example:

size = attrdict.size

if (size)
UI.messagebox size
else
# code to handle no attributes
end

values
The values method is used to retrieve an array of all of the attribute values.
Syntax:
values = attributedictionary.values
Arguments:
Return Value:
values – an array of values within the attribute dictionary if successful
Comments:
Example:

values = attrdict.values

if (values)
# display first value in the array
UI.messagebox values[0]
else
# code to handle no values
end