Property inheritance from "line timeline" to "block interval"

Started by Nadasdaos, February 23, 2017, 07:09:01 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Nadasdaos

Hi guys,
I hope you can help me with this problem: basically, when building a timeline, "block intervals" that you drop on a "line timeline" inherit some properties of the said "line timeline" and i would like to override that.
My case:
first create a "line timeline", then drop a "block interval" on it, open the shapesheet for that "block interval" and you will see many properties written in blue instead of black, many of them beginning with "Line timeline!"... followed by a property of the "line timeline". These blue properties are inherited from the "line timeline" when you drop the "block interval" on the "line timeline".
My problem is with Shape Transform > Height.
I created a stencil of "block interval" (the stencil being unlinked to the "line timeline") where I can modify the height to different values through a data link. However, when I drop that block interval stencil on the line timeline, my original height is ignored and replaced by the inherited "Line timeline!Height" property.
Where & how can I change that inheritance so that the inherited property would be "Line timeline!Height*[my stencil property i called "YSize"]

thank you guys as I am losing my hair on this one!

N.

wapperdude

The root of the problem is that the timeline shapes have a great deal of code behind them.  Non-accessible code.  So, anything you do gets clobbered by this code. 

But, you can always "re-clobber" using setf/getref.

Add a new user defined row.  Then enter something like:  =setf(getref(height),Line timeline!Height * YSize).  The caveat, I believe, all block intervals will inherit the resulting height.  That is, they'll all have a uniform height.

HTH
Wapperdude
Visio 2019 Pro

Yacine

Would "GUARD" protect the tailored height cell or does the addin overwrite the formula?
Yacine

wapperdude

My experience with Visio add-ins is they over-write.  Guarding is ineffective in such cases.  In fact, the timeline shapes tend to be very resistant to anything but superficial changes.

Wapperdude
Visio 2019 Pro

Nadasdaos

Hi Wapperdude,

Thanks very much on that one! It already kind of works (which makes me more than half happy).
I had to put the SETF with "" in order for it to work (else it doesn't recognize the timeline reference)
=SETF(GetRef(Height),"Line timeline!Height*Prop.YSize")

I am saying that it kind of works because as I link the stencil with the data link, the SETF is not applied :-(
However by selecting all shapes + entering in the Shapesheet + going into the user defined cell with the SETF and revalidating it (just pressing enter). Then it gets applied, each shape gets rescaled with its own YSize. And it continues being applied when synching the data link, as long as I don't change the stencil.
But if I change the stencil and reinitiate the data link, I have to go through revalidating the SETF cell again.

So just a last question in case you have a cue: any way to automate the application of the SETF without getting into the shapesheet?

Cheers and thanks again,

N.