"Change Shape" to update from master

Started by Garden Dwarf, October 24, 2023, 02:23:53 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Garden Dwarf

Hello,

I have two objects in a stencil.
These objects have been configured to display a menu with a list of options from which the user can select one entry (in the Shapesheet: Shape Data, Actions).
By selecting the entry, the object then changes the background color of the item (in the Shapesheet: Fille Format).

These objects have been used multiple times to create a workflow, and after having updated the master I want to propagate the changes to the different occurrences of the objects.
To do this, I select all occurrences of the first object, select Home > Shape Change, and select the corresponding updated object from the stencil.

When I do this for the first object, all the occurrences are preserving their individual configuration (selected option and color).
But when I do this for the second object, all occurrences are reset to the default configuration (the one which is stored into the stencil).

After some search on the forum and on the internet, I do not find any starting point for my investigations. Do you have any idea?
Also for my understanding, how can we configure a shape to decide whether or not to reset the data to the default values?

Thanks a lot in advance  :D

wapperdude

QuoteI have two objects in a stencil.
These are master shapes.

Quoteupdated the master
By this do you mean both objects on your stencil?  Not clear what was updated.

The Shape Change should have worked.  But, not clear what was changed and how that affects the 2 masters on the stencil.

Can you upload a non-propriatary sample so we can see what is going on?

Visio 2019 Pro

Garden Dwarf

Hello,

I may have a simple example you can build.


  • Place a Task object on a page (More Shapes > Flowchart > BPMN Basic Shapes > Task).
  • Place a Rectangle object on a page (More Shapes > General > Basic Shapes > Rectangle).
  • Make changes to both objects (e.g. background color).
  • With the Task object selected, click on "Change Shape" in the Home menu and chose the same Task object. You will notice that the object is reset to its initial state (e.g. if you have changed the background color, your change will be lost).
  • With the Rectangle object selected, click on "Change Shape" in the Home menu and chose the same Rectangle object. You will notice that your changes will be preserved (e.g. if you have changed the background color, your change will be kept).

I know that in my example one shape is a group and the other one is not. But I have the same effect if I create a group from multiple simple shapes.

Nikolay

#3
I have followed your steps, but it looks like I cannot reproduce the issue, the changes (background) are always preserved.

Here is the video:


Maybe a bug in specific Visio version? I'm using Plan2.

Garden Dwarf

Thank you for your time and patience  :)

The example I provided was made from an existing Visio file I had, and unfortunately I am not allowed to upload it here.
So I tried to do the same with a new/blank file, and this time I was not able to reproduce the issue (as you reported too).
I have no idea what is wrong (or what I did wrong) but I will check and revert once clarified.

By the way, I'm also using Plan2!

Nikolay

Just as an idea, It may be a "stuck" outdated master in the existing file.

I.e. maybe you could check what masters do you have in the file itself (they are copied there when you create a shape from a new master).
Possibly, you will be able to pinpoint the difference.

To see all masters used in your file, open the "Developer" tab, then click the checkbox "Document Stencil"

Garden Dwarf

Ok, I was able to reproduce this from scratch. However the company for which I am working for prevents me from sharing files, so I will explain the steps. As we both have the same Visio version, I hope you will obtain the same results.

1. Create a new Visio file (I selected Blank Drawing with Metric Units).

2. Add a Rectangle from More Shapes > General > Basic Shapes. Add a Shape Data named "Color" with a value "RGB(255,255,255)".

3. Add a Task from More Shapes > Flowchart > BPMN Basic Shapes. Add a Shape Data named "Color" with a value "RGB(255,255,255)".

4. Create a new Stencil (More Shapes > New Stencil (Metric)). Add the custom Rectangle and Task shapes. Save, end the edition.

5. Now in the new Visio file, drag/drop the custom objects from the new Stencil on the Page. For each one, change the Color data value (e.g. to "RGB(255,0,0)").

6. Select the custom Rectangle object, click change shape to the same Rectangle object from the new Stencil (Home menu > Change Shape > select the new Stencil > Select the custom Rectangle). Note that the Color data value is still the last entered value ("RGB(255,0,0)" in the example).

7. Select the custom Task object, click change shape to the same Task object from the new Stencil (Home menu > Change Shape > select the new Stencil > Select the custom Task). This time, you should notice that the Color data value has been reset to "RGB(255,255,255)".

Nikolay

Yes, I can reproduce this.

But this only happens to the "Task" shape
It does not seem to ever happen to the "Rectangle" shape?

Maybe it's because the "Task" shape is a complex shape or something.

Garden Dwarf

#8
Great!

This happen to some shapes only, but I don't know what are the conditions and/or limitations.

I am building my own stencil and I am looking for an easy way to update all my custom shapes when I make changes in the master.
If I have to restore manually all the Shape Data by hand, it will be a mess.

I need to understand the conditions and/or limitations, and then I could configure my custom shapes accordingly.

[EDIT]
I created a group with 2 basic shapes: a triangle and a circle. I have set the data as indicated in the example. Change Shape is preserving the value of the data, as for the rectangle.
I then have included the Task shape inside of the triangle/circle group and added the "color" shape data. This would result in a more complex shape, right? Well, changing shape is again preserving the value.
So this seems to be the behavior of the Task shape only, and not due to its complexity. But why???
[/EDIT]

Yacine

#9
https://learn.microsoft.com/en-us/office/client-developer/visio/replacelockshapedata-cell-change-shape-behavior-section

set it to 0 and you're done. The task shape from the bmnp has its value set to 1.


Now for modifiying your existing drawings, I'm not sure which of the old and the new master you need to modify - or both? Check it by yourself, or read the doc more carefully than I did.
If the old shape needs modification, you'll probably need a small routine to set the value in each source shape.
Yacine

Nikolay

#10
Wow. Visio got some new ShapeSheet cells  ;D

Garden Dwarf

That's exactly what I was trying to find. Thank you!