<?xml encoding=”UTF-8″>By Xiaodong Liang
For some reasons such as the corresponding components are removed/suppressed, the dimensions which ever attach to the components will be orphaned and can be removed.
Recently, I got a question that the user wants to hide the orphaned dimension. Once the components are available again, he wants to display the dimension again.
DrawingDimension.Attached indicates whether this dimension is attached to anything. But there is no property to control the visibility of the dimension. You can only remove it completely by DrawingDimension.Delete
After some investigations, a workaround came to my brain. We could move the orphaned dimension to a layer which is switched off. And set its layer back to a normal dimension layer if the user wants to reset.
The following is some code snippet of iLogic.
hideUnAttachedDim:
<span> </span><span>doc</span><span> </span><span>=</span><span> </span><span>ThisDoc</span><span>.</span><span>Document</span><span>
</span><span>'</span><span>'assume a layer named "Dimension (ISO)" exists. </span><span>
</span><span> </span><span>'</span><span> If no, you could use other existing layers.</span><span>
</span><span>Dim</span><span> </span><span>oHideLayer</span><span>
</span><span>oHideLayer</span><span> </span><span>=</span><span> </span><span>doc</span><span>.</span><span>StylesManager</span><span>.</span><span>Layers</span><span>.<br> </span><span>Item</span><span>(</span><span>"</span><span>Dimension (ISO)</span><span>"</span><span>)</span><span>.</span><span>Copy</span><span>(</span><span>"</span><span>dummy</span><span>"</span><span>)</span><span>
</span><span>'</span><span>iterate each dimension </span><span>
</span><span>Dim</span><span> </span><span>oEachDim</span><span> </span><span>As</span><span> </span><span>DrawingDimension</span><span>
</span><span>For</span><span> </span><span>Each</span><span> </span><span>oEachDim</span><span> </span><span>In</span><span> </span><span>doc</span><span>.</span><span>ActiveSheet</span><span>.</span><span>DrawingDimensions</span><span>
</span><span>'</span><span>if it is orphaned </span><span>
</span><span> </span><span>If</span><span> </span><span>Not</span><span> </span><span>oEachDim</span><span>.</span><span>Attached</span><span> </span><span>Then</span><span>
</span><span>'</span><span> set the layer to the dummy layer </span><span>
</span><span> </span><span>oEachDim</span><span>.</span><span>Layer</span><span> </span><span>=</span><span> </span><span>oHideLayer</span><span>
</span><span>End</span><span> </span><span>If</span><span>
</span><span>Next</span><span>
</span><span>'</span><span>hide this layer </span><span>
</span><span>oHideLayer</span><span>.</span><span>Visible</span><span> </span><span>=</span><span> </span><span>False</span><span>
</span><span>doc</span><span>.</span><span>Update<br>*****************************</span>
resetDim:
<span> </span><span>doc</span><span> </span><span>=</span><span> </span><span>ThisDoc</span><span>.</span><span>Document</span><span>
</span><span>'</span><span>Set the dimensions whose layer Is <br>'"dummy" To "Dimension (ISO)"</span><span>
</span><span>Dim</span><span> </span><span>oEachDim</span><span> </span><span>As</span><span> </span><span>DrawingDimension</span><span>
</span><span>For</span><span> </span><span>Each</span><span> </span><span>oEachDim</span><span> </span><span>In</span><span> </span><span>doc</span><span>.</span><span>ActiveSheet</span><span>.</span><span>DrawingDimensions</span><span>
</span><span>If</span><span> </span><span>oEachDim</span><span>.</span><span>Layer</span><span>.</span><span>Name</span><span> </span><span>=</span><span> </span><span>"</span><span>dummy</span><span>"</span><span> </span><span>Then</span><span>
</span><span>oEachDim</span><span>.</span><span>Layer</span><span> </span><span>=</span><span> </span><span>doc</span><span>.</span><span>StylesManager</span><span>.</span><span>Layers</span><span>.<br> </span><span>Item</span><span>(</span><span>""</span><span>Dimension</span><span> </span><span>(</span><span>ISO</span><span>)</span><span>"</span><span>)</span><span>
</span><span> </span><span>End</span><span> </span><span>If</span><span>
</span><span>Next</span><span>
</span><span>doc</span><span>.</span><span>Update</span>


Leave a Reply