/// <summary>
        /// Creates list of cref="ICalculationObject".
        /// </summary>
        /// <returns>List of cref="ICalculationObject".</returns>
        public List <ICalculationObject> CalculationScenarioList()
        {
            List <ICalculationObject> scenario = new List <ICalculationObject>();

            {
                PrepareSectionData calcObj = new PrepareSectionData();
                calcObj.Type          = CalculationObjectType.Section;
                calcObj.ErrorResponse = ErrorResponse.SkipOnError;
                calcObj.Categories    = new List <BuiltInCategory>()
                {
                    BuiltInCategory.OST_BeamAnalytical, BuiltInCategory.OST_ColumnAnalytical
                };
                scenario.Add(calcObj);
            }

            {
                ModifyElementForces calcObj = new ModifyElementForces();
                calcObj.Type          = CalculationObjectType.Element;
                calcObj.ErrorResponse = ErrorResponse.SkipOnError;
                calcObj.Categories    = new List <BuiltInCategory>()
                {
                    BuiltInCategory.OST_BeamAnalytical, BuiltInCategory.OST_ColumnAnalytical
                };
                scenario.Add(calcObj);
            }

            {
                CalculateSection calcObj = new CalculateSection();
                calcObj.Type          = CalculationObjectType.Section;
                calcObj.ErrorResponse = ErrorResponse.SkipOnError;
                calcObj.Categories    = new List <BuiltInCategory>()
                {
                    BuiltInCategory.OST_BeamAnalytical, BuiltInCategory.OST_ColumnAnalytical
                };
                scenario.Add(calcObj);
            }


            {
                CalculateDeflection calcObj = new CalculateDeflection();
                calcObj.Type          = CalculationObjectType.Element;
                calcObj.ErrorResponse = ErrorResponse.SkipOnError;
                calcObj.Categories    = new List <BuiltInCategory>()
                {
                    BuiltInCategory.OST_BeamAnalytical
                };
                scenario.Add(calcObj);
            }

            {
                FillResultData calcObj = new FillResultData();
                calcObj.Type          = CalculationObjectType.Element;
                calcObj.ErrorResponse = ErrorResponse.RunOnError;
                calcObj.Categories    = new List <BuiltInCategory>()
                {
                    BuiltInCategory.OST_BeamAnalytical, BuiltInCategory.OST_ColumnAnalytical
                };
                scenario.Add(calcObj);
            }

            return(scenario);
        }
        /// <summary>
        /// Creates list of cref="ICalculationObject".
        /// </summary>
        /// <param name="category">Category of the element.</param>
        /// <param name="material">Material of the element.</param>
        /// <returns>List of cref="ICalculationObject".</returns>
        public List <ICalculationObject> CalculationScenarioList(Autodesk.Revit.DB.BuiltInCategory category, Autodesk.Revit.DB.StructuralAssetClass material)
        {
            List <ICalculationObject> scenario = new List <ICalculationObject>();

            /// <structural_toolkit_2015>
            switch (material)
            {
            case StructuralAssetClass.Concrete:
                switch (category)
                {
                case BuiltInCategory.OST_BeamAnalytical:
                case BuiltInCategory.OST_ColumnAnalytical:
                {
                    PrepareSectionData calcObj = new PrepareSectionData();
                    calcObj.Type          = CalculationObjectType.Section;
                    calcObj.ErrorResponse = ErrorResponse.SkipOnError;
                    calcObj.Categories    = new List <BuiltInCategory>()
                    {
                        BuiltInCategory.OST_BeamAnalytical, BuiltInCategory.OST_ColumnAnalytical
                    };
                    scenario.Add(calcObj);
                }
                    {
                        ModifyElementForces calcObj = new ModifyElementForces();
                        calcObj.Type          = CalculationObjectType.Element;
                        calcObj.ErrorResponse = ErrorResponse.SkipOnError;
                        calcObj.Categories    = new List <BuiltInCategory>()
                        {
                            BuiltInCategory.OST_BeamAnalytical, BuiltInCategory.OST_ColumnAnalytical
                        };
                        scenario.Add(calcObj);
                    }
                    {
                        CalculateSection calcObj = new CalculateSection();
                        calcObj.Type          = CalculationObjectType.Section;
                        calcObj.ErrorResponse = ErrorResponse.SkipOnError;
                        calcObj.Categories    = new List <BuiltInCategory>()
                        {
                            BuiltInCategory.OST_BeamAnalytical, BuiltInCategory.OST_ColumnAnalytical
                        };
                        scenario.Add(calcObj);
                    }
                    {
                        CalculateDeflection calcObj = new CalculateDeflection();
                        calcObj.Type          = CalculationObjectType.Element;
                        calcObj.ErrorResponse = ErrorResponse.SkipOnError;
                        calcObj.Categories    = new List <BuiltInCategory>()
                        {
                            BuiltInCategory.OST_BeamAnalytical
                        };
                        scenario.Add(calcObj);
                    }
                    {
                        FillResultData calcObj = new FillResultData();
                        calcObj.Type          = CalculationObjectType.Element;
                        calcObj.ErrorResponse = ErrorResponse.RunOnError;
                        calcObj.Categories    = new List <BuiltInCategory>()
                        {
                            BuiltInCategory.OST_BeamAnalytical, BuiltInCategory.OST_ColumnAnalytical
                        };
                        scenario.Add(calcObj);
                    }
                    break;

                case Autodesk.Revit.DB.BuiltInCategory.OST_FloorAnalytical:
                case Autodesk.Revit.DB.BuiltInCategory.OST_FoundationSlabAnalytical:
                case Autodesk.Revit.DB.BuiltInCategory.OST_WallAnalytical:
                {
                    PrepareSectionData calcObj = new PrepareSectionData();
                    calcObj.Type          = CalculationObjectType.Section;
                    calcObj.ErrorResponse = ErrorResponse.SkipOnError;
                    calcObj.Categories    = new List <BuiltInCategory>()
                    {
                        BuiltInCategory.OST_FloorAnalytical, BuiltInCategory.OST_FoundationSlabAnalytical, BuiltInCategory.OST_WallAnalytical
                    };
                    scenario.Add(calcObj);
                }
                    {
                        ModifyElementForces calcObj = new ModifyElementForces();
                        calcObj.Type          = CalculationObjectType.Element;
                        calcObj.ErrorResponse = ErrorResponse.SkipOnError;
                        calcObj.Categories    = new List <BuiltInCategory>()
                        {
                            BuiltInCategory.OST_FloorAnalytical, BuiltInCategory.OST_FoundationSlabAnalytical, BuiltInCategory.OST_WallAnalytical
                        };
                        scenario.Add(calcObj);
                    }
                    {
                        CalculateSection calcObj = new CalculateSection();
                        calcObj.Type          = CalculationObjectType.Section;
                        calcObj.ErrorResponse = ErrorResponse.SkipOnError;
                        calcObj.Categories    = new List <BuiltInCategory>()
                        {
                            BuiltInCategory.OST_FloorAnalytical, BuiltInCategory.OST_FoundationSlabAnalytical, BuiltInCategory.OST_WallAnalytical
                        };
                        scenario.Add(calcObj);
                    }
                    {
                        FillResultData calcObj = new FillResultData();
                        calcObj.Type          = CalculationObjectType.Element;
                        calcObj.ErrorResponse = ErrorResponse.RunOnError;
                        calcObj.Categories    = new List <BuiltInCategory>()
                        {
                            BuiltInCategory.OST_FloorAnalytical, BuiltInCategory.OST_FoundationSlabAnalytical, BuiltInCategory.OST_WallAnalytical
                        };
                        scenario.Add(calcObj);
                    }
                    break;
                }
                break;
            }
            /// </structural_toolkit_2015>

            return(scenario);
        }