Пример #1
0
        ////[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Reliability", "CA2000:Dispose objects before losing scope")]
        public Result Execute(
            ExternalCommandData commandData,
            ref string message,
            ElementSet elements)
        {
            if (commandData == null)
            {
                return(Result.Failed);
            }

            UIDocument udoc = commandData.Application.ActiveUIDocument;

            var vm = new ViewModels.SolarViewsViewModel(commandData.Application.ActiveUIDocument);

            SCaddinsApp.WindowManager.ShowDialog(vm, null, ViewModels.SolarViewsViewModel.DefaultViewSettings);

            if (vm.CreateAnalysisView)
            {
                #if REVIT2021
                var internalUnitsGridSize = UnitUtils.ConvertToInternalUnits(vm.AnalysisGridSize, UnitTypeId.Millimeters);
                #else
                var internalUnitsGridSize = UnitUtils.ConvertToInternalUnits(vm.AnalysisGridSize, DisplayUnitType.DUT_MILLIMETERS);
                #endif
                SolarAnalysisManager.CreateTestFaces(vm.FaceSelection, vm.MassSelection, internalUnitsGridSize, udoc, udoc.ActiveView);
            }

            return(Result.Succeeded);
        }
Пример #2
0
        ////[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Reliability", "CA2000:Dispose objects before losing scope")]
        public Result Execute(
            ExternalCommandData commandData,
            ref string message,
            ElementSet elements)
        {
            if (commandData == null)
            {
                return(Result.Failed);
            }

            UIDocument udoc = commandData.Application.ActiveUIDocument;

            if (udoc.Document.IsFamilyDocument)
            {
                SCaddinsApp.WindowManager.ShowErrorMessageBox("Families not supported", "Solar analysis tools will not work in a family environment.");
                return(Result.Failed);
            }

            var vm = new ViewModels.SolarViewsViewModel(commandData.Application.ActiveUIDocument);

            SCaddinsApp.WindowManager.ShowDialog(vm, null, ViewModels.SolarViewsViewModel.DefaultViewSettings);

            if (vm.CreateAnalysisView)
            {
#if REVIT2021 || REVIT2022 || REVIT2023
                var internalUnitsGridSize = UnitUtils.ConvertToInternalUnits(vm.AnalysisGridSize, UnitTypeId.Millimeters);
#else
                var internalUnitsGridSize = UnitUtils.ConvertToInternalUnits(vm.AnalysisGridSize, DisplayUnitType.DUT_MILLIMETERS);
#endif
                SolarAnalysisManager.CreateTestFaces(vm.FaceSelection, vm.MassSelection, internalUnitsGridSize, udoc, udoc.ActiveView);
            }
            if (vm.DrawSolarRay)
            {
                SolarAnalysisManager.DrawSolarRayAsModelLine(udoc, vm.SolarRayLength);
            }

            return(Result.Succeeded);
        }