Hide drawing dimensions which are orphaned

<?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.

image

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>


Comments

One response to “Hide drawing dimensions which are orphaned”

Leave a Reply

Discover more from Autodesk Developer Blog

Subscribe now to keep reading and get access to the full archive.

Continue reading