My decorations seem to work okay. Here is some example code
// Archimate Data Object - Extension for message and database
shape main
{
layouttype="border";
rectangle(0,0,100,100);
addsubshape("padding","n");
addsubshape("name","center");
shape padding
{
preferredheight=20;
}
shape name
{
preferredheight=20;
h_align="center";
rectangle(0,0,100,100);
print("#name#");
}
}
decoration icon
{
orientation="ne";
defsize(90,70);
if(hasproperty("rectanglenotation","0"))
{
}
else
{
if (hastag("Type","Database"))
{
startpath();
moveto(0,20);
bezierto(0,0,100,0,100,20);
lineto(100,80);
bezierto(100,100,0,100,0,80);
lineto(0,20);
endpath();
fillandstrokepath();
bezierto(0,40,100,40,100,20);
}
else if (hastag("Type","Message"))
{
rectangle(0,0,100,100);
moveto(0,0);
lineto(50,50);
lineto(100,0);
}
}
}
decoration composite
{
orientation="SE";
if(hasproperty("iscomposite","true"))
{
ellipse(0,40,40,60);
ellipse(60,40,100,60);
moveto(30,50);
lineto(70,50);
}
}