Thanks!
(@KP - I am not calling DrawParentShape(), but have edited the decoration script.)
So, it's good to know all inherited decorations are drawn. Appreciate it, @Simon M.
Not ideal, but what I have done to get my custom decoration to display is to rely on the fact that my decoration is overlaid on top of the inherited decoration.
I create and fill a shape to override the previous decoration, and then draw mine on top of that.
For example, I specialised the ArchiMate_Goal element to be an Objective (more SMART).
The decoration in the shapescript for ArchiMate_Goal is:
decoration goal
{
orientation="ne";
SetOrigin("ne",-25,5);
startpath();
ellipse(0,0,100,100);
endpath();
strokepath();
startpath();
ellipse(15,15,85,85);
endpath();
strokepath();
setfillcolor(getuserbordercolor());
ellipse(30,30,70,70);
}
What I did in my custom ShapeScript was replace the decoration, and start with blotting out the old decoration:
decoration objective
{
orientation="ne";
SetOrigin("ne",-25,5);
startpath();
ellipse(0,0,100,100);
endpath();
SetFillColor(GetUserFillColor());
FillAndStrokePath();
//...
}
I suppose, if specialising an existing MDG and using custom ShapeScript (as per Geert's library), there is no value in keeping the decorations in the new ShapeScript as the inherited decorations will always be displayed, unless you want to redefine it.
Thanks again!