Retrieving dimensions in a drawing view

<?xml encoding=”UTF-8″>By Balaji Ramamoorthy

To retrieve only a few of the dimensions, the “GeneralDimensions.Retrieve” method can be used with second parameter being a collection of dimensions to retrieve. In Inventor 2016, this also brings along other dimensions that were not in the collection. A request has been logged with our engineering team to address this.

As a workaround, all the dimensions can be retrieved in a drawing view and the ones that are not needed can be deleted. In the below code snippet, this workaround is demonstrated and it only retains the dimensions in the drawing view which were retrieved from dimensions which have parameter names matching a specific string.

 <span>Dim</span><span>  oDoc <span>As</span><span>  DrawingDocument</span></span>
 oDoc = ThisApplication.ActiveDocument
 
 oDrawDimsForView _
 = ThisApplication.TransientObjects.CreateObjectCollection
 
 <span>Dim</span><span>  oSheet <span>As</span><span>  Sheet</span></span>
 oSheet = oDoc.ActiveSheet
 
 <span>Dim</span><span>  oDims <span>As</span><span>  GeneralDimensions</span></span>
 oDims = oSheet.DrawingDimensions.GeneralDimensions
 
 <span>Dim</span><span>  oView <span>As</span><span>  DrawingView</span></span>
 oView = oSheet.DrawingViews(1)
 
 <span>Dim</span><span>  oRetrievableDims <span>As</span><span>  ObjectCollection</span></span>
 oRetrievableDims _
 = ThisApplication.TransientObjects.CreateObjectCollection
 oRetrievableDims = oDims.GetRetrievableDimensions(oView)
 
 <span>If</span><span>  oRetrievableDims.Count > 0 <span>Then</span><span> </span></span>
     <span>Dim</span><span>  dimsEnum <span>As</span><span>  GeneralDimensionsEnumerator</span></span>
     dimsEnum = oDims.Retrieve(oView)
 
     <span>Dim</span><span>  paramName <span>As</span><span>  <span>String</span><span> </span></span></span>
     <span>Dim</span><span>  oDim <span>As</span><span>  GeneralDimension</span></span>
     <span>For</span><span>  <span>Each</span><span>  oDim <span>In</span><span>  dimsEnum</span></span></span>
         <span>If</span><span>  oDim.Retrieved <span>Then</span><span> </span></span>
             paramName = oDim.retrievedFrom.Parameter.Name
 
             <span>If</span><span>  paramName <> <span>"ShoeWidth"</span><span>  <span>And</span><span>  _</span></span></span>
             paramName <> <span>"ShoeHeight"</span><span>  <span>Then</span><span> </span></span>
                 oDim.Delete()
             <span>End</span><span>  <span>If</span><span> </span></span>
         <span>End</span><span>  <span>If</span><span> </span></span>
     <span>Next</span><span> </span>
 <span>End</span><span>  <span>If</span></span>
 


Comments

Leave a Reply

Discover more from Autodesk Developer Blog

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

Continue reading