public Result Execute(
            ExternalCommandData commandData,
            ref string message,
            ElementSet elements)
        {
            #region Assertions
            Debug.Assert(0 == (int)DisplayUnitType.DUT_METERS, _s);
            Debug.Assert(1 == (int)DisplayUnitType.DUT_CENTIMETERS, _s);
            Debug.Assert(2 == (int)DisplayUnitType.DUT_MILLIMETERS, _s);
            Debug.Assert(3 == (int)DisplayUnitType.DUT_DECIMAL_FEET, _s);
            Debug.Assert(4 == (int)DisplayUnitType.DUT_FEET_FRACTIONAL_INCHES, _s);
            Debug.Assert(5 == (int)DisplayUnitType.DUT_FRACTIONAL_INCHES, _s);
            Debug.Assert(6 == (int)DisplayUnitType.DUT_DECIMAL_INCHES, _s);
            Debug.Assert(7 == (int)DisplayUnitType.DUT_ACRES, _s);
            Debug.Assert(8 == (int)DisplayUnitType.DUT_HECTARES, _s);
            Debug.Assert(9 == (int)DisplayUnitType.DUT_METERS_CENTIMETERS, _s);
            Debug.Assert(10 == (int)DisplayUnitType.DUT_CUBIC_YARDS, _s);
            Debug.Assert(11 == (int)DisplayUnitType.DUT_SQUARE_FEET, _s);
            Debug.Assert(12 == (int)DisplayUnitType.DUT_SQUARE_METERS, _s);
            Debug.Assert(13 == (int)DisplayUnitType.DUT_CUBIC_FEET, _s);
            Debug.Assert(14 == (int)DisplayUnitType.DUT_CUBIC_METERS, _s);
            Debug.Assert(15 == (int)DisplayUnitType.DUT_DECIMAL_DEGREES, _s);
            Debug.Assert(16 == (int)DisplayUnitType.DUT_DEGREES_AND_MINUTES, _s);
            Debug.Assert(17 == (int)DisplayUnitType.DUT_GENERAL, _s);
            Debug.Assert(18 == (int)DisplayUnitType.DUT_FIXED, _s);
            Debug.Assert(19 == (int)DisplayUnitType.DUT_PERCENTAGE, _s);
            Debug.Assert(20 == (int)DisplayUnitType.DUT_SQUARE_INCHES, _s);
            Debug.Assert(21 == (int)DisplayUnitType.DUT_SQUARE_CENTIMETERS, _s);
            Debug.Assert(22 == (int)DisplayUnitType.DUT_SQUARE_MILLIMETERS, _s);
            Debug.Assert(23 == (int)DisplayUnitType.DUT_CUBIC_INCHES, _s);
            Debug.Assert(24 == (int)DisplayUnitType.DUT_CUBIC_CENTIMETERS, _s);
            Debug.Assert(25 == (int)DisplayUnitType.DUT_CUBIC_MILLIMETERS, _s);
            Debug.Assert(26 == (int)DisplayUnitType.DUT_LITERS, _s);
            #endregion // Assertions

            MapDutToUt map_dut_to_ut = new MapDutToUt();

            DisplayUnitType n
                = DisplayUnitType.DUT_GALLONS_US;

            Debug.Print("Here is a list of the first {0} "
                        + "display unit types with official Revit API "
                        + "LabelUtils, hard-coded The Building Coder "
                        + "abbreviations and valid unit symbols:\n",
                        (int)n - 1);

            string unit_types, valid_unit_symbols;

            for (DisplayUnitType i = DisplayUnitType
                                     .DUT_METERS; i < n; ++i)
            {
                List <string> uts = new List <string>(
                    map_dut_to_ut[i]
                    .Select <UnitType, string>(
                        u => u.ToString().Substring(3)));

                int m = uts.Count;

                unit_types = 4 > m
          ? string.Join(", ", uts)
          : string.Format("{0}, {1} and {2} more",
                          uts[0], uts[1], m - 2);

                valid_unit_symbols = string.Join(", ",
                                                 FormatOptions.GetValidUnitSymbols(i)
                                                 .Where(u => UnitSymbolType.UST_NONE != u)
                                                 .Select <UnitSymbolType, string>(
                                                     u => LabelUtils.GetLabelFor(u)
                                                     + "/" + Util.UnitSymbolTypeString(u)));

                Debug.Print("{0,6} - {1} - {2}: {3}",
                            Util.DisplayUnitTypeAbbreviation[(int)i],
                            LabelUtils.GetLabelFor(i),
                            unit_types,
                            //i
                            //UnitFormatUtils.Format( UnitType. ???
                            //UnitUtils.ConvertFromInternalUnits( 1, i ),
                            valid_unit_symbols);
            }
            return(Result.Succeeded);
        }