User-defined properties

From Silhouette Wiki
Jump to navigation Jump to search

User-defined Properties

Properties can be created and added to objects dynamically at runtime, either from within a custom Action or in response to a hook. For instance, a custom text field could be added to all Shapes when they are created in response to the object_created hook:

def add_character_name_prop(shape):
    if shape.isType("Shape"):
        if not"character_name"):
            prop = Property("character_name", "Character Name", "", {})

import hook
hook.add("object_created", add_character_name_prop)

User-defined properties can be removed using object.removeProperty.

The Property() constructor has the following signature:

Property(id, label, value, info=None, tooltip=None)

The property type will be inferred from value. Currently supported types are boolean, number, list, and string. Depending on the type, info should also point to a dictionary containing additional information.

The available hooks are:

User-defined Properties
Property type value type info dictionary members
boolean True or False ignored
number float min, max