Seems like this should be dead simple. I'm writing an add-in for ArcMap 10 in VB.Net. I need code that will reproduce the 'Selection --> Zoom To Selected Feature' menu option.

  • What is causing problems? Add-in or "Zoom to selected"? – MathiasWestin Oct 5 '10 at 14:50
  • Implementing "Zoom To Selected" inside the Add-in. The Add-in itself is working fine, other than the Zoom To Selected feature. I assumed there would be some VB.Net equivalent to the python code here: gis.stackexchange.com/questions/1711/… – mwolfe02 Oct 5 '10 at 15:00

You can call the built-in command for "Zoom to Selected Features" using the CLSID or ProgID.

{AB073B49-DE5E-11D1-AA80-00C04FA37860} esriArcMapUI.ZoomToSelectedCommand



  • Awesome. Exactly what I was looking for. I've been wasting my time trying to implement this manually in the code using envelopes, etc. but I really didn't need that level of granular control. I knew there had to be a straightforward way to simply use the existing toolbar commands. Thanks again! – mwolfe02 Oct 5 '10 at 18:55

I had problems implementing the above solutions - the syntax hadn't been updated. This is my solution.

    Dim pUID As New UID
    'set the puid by using the clsid
    'pUID.Value = "{AB073B49-DE5E-11D1-AA80-00C04FA37860}"
    'Put subtype here if there is one.  There isn't in this case so you don't need it.
    'pUID.SubType = 0
    'Used the  ProgID instead.  Easier for someone else to read the code.
    pUID.Value = "esriArcMapUI.ZoomToSelectedCommand"

This was written for an add-in using ArcGIS 10sp2 and Visual Studio 2008.

       public void ZoomToSelectedFeatures()
        ESRI.ArcGIS.Carto.IActiveView pActiveView;
        ESRI.ArcGIS.Carto.IMap pMap;
        ESRI.ArcGIS.Geodatabase.IEnumFeature pEnumFeature;
        ESRI.ArcGIS.Geodatabase.IFeature pFeature;

        pMap = (IMap)m_hookHelper.FocusMap;
        pEnumFeature = (IEnumFeature)pMap.FeatureSelection;
        pFeature = pEnumFeature.Next();

        ESRI.ArcGIS.Geometry.IEnvelope pEnvelope;
        pEnvelope = new EnvelopeClass();

        while (pFeature != null)
            pFeature = pEnumFeature.Next();

        pEnvelope.Expand(1.2, 1.2, true);
        pActiveView = m_hookHelper.ActiveView;
        pActiveView.Extent = pEnvelope;

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.