public Result Execute(
            ExternalCommandData commandData,
            ref string message,
            ElementSet elements)
        {
            var app   = commandData.Application;
            var uidoc = app.ActiveUIDocument;

            var familyInstance
                = SelectFamilyInstanceWithApparentLoad(
                      uidoc);

            if (familyInstance == null)
            {
                return(Result.Cancelled);
            }

            var electricalApparentLoadFactory
                = new ElectricalApparentLoadFactory();

            var apparentLoads = electricalApparentLoadFactory
                                .Create(familyInstance);

            TaskDialog.Show("CmdElectricalLoad",
                            string.Join("\n", apparentLoads));

            return(Result.Succeeded);
        }
            public bool AllowElement(Element elem)
            {
                var familyInstance = elem as FamilyInstance;

                if (familyInstance == null)
                {
                    return(false);
                }

                return(electricalApparentLoadFactory
                       .Create(familyInstance)
                       .Any());
            }