<?xml encoding=”UTF-8″>By Augusto Goncalves
We have a few samples of our blog showing how create drawable overrule. But what’s the skeleton to set up? This is actually a recurrent question on our support, so I decided to share what is my recommendation.
To make it work you’ll need a class that implements the DrawableOverrule class and the WorldDraw method (and the ViewportDraw is more specific). I prefer have a command to active/deactivate the overrule and make it as startup command (using bundle format). The command will check the variable and Add or Remove the overrule. Finally, remember to call Regen(), otherwise the new geometry will not appear.
The sample below should work for MText (for other types, just replace the class name).
[<span>CommandMethod</span>(<span>"simpleOverrule"</span>)]<br><span>public</span> <span>void</span> CmdSimpleOverrule()<br>{<br> <span>if</span> (_overrule == <span>null</span>)<br> {<br> _overrule = <span>new</span> <span>TextOverrule</span>();<br> <span>Overrule</span>.AddOverrule(<br> <span>RXClass</span>.GetClass(<span>typeof</span>(<span>MText</span>)),<br> _overrule, <span>false</span>);<br> }<br> <span>else</span><br> {<br> <span>Overrule</span>.RemoveOverrule(<br> <span>RXClass</span>.GetClass(<span>typeof</span>(<span>MText</span>)),<br> _overrule);<br> _overrule = <span>null</span>;<br> }<br> <span>Application</span>.DocumentManager.MdiActiveDocument.Editor.Regen();<br>}<br> <br><span>private</span> <span>static</span> <span>TextOverrule</span> _overrule = <span>null</span>;<br> <br><span>public</span> <span>class</span> <span>TextOverrule</span> : <span>DrawableOverrule</span><br>{<br> <span>public</span> <span>override</span> <span>bool</span> WorldDraw(<span>Drawable</span> drawable, <span>WorldDraw</span> wd)<br> {<br> <span>// draw the base class</span><br> <span>bool</span> ret = <span>base</span>.WorldDraw(drawable, wd);<br> <br> <span>// your custom code here</span><br> <span>//</span><br> <span>//</span><br> <br> <span>// return the base</span><br> <span>return</span> ret;<br> }<br>}

Leave a Reply