Project Settings Script Example#

This example configures units, analysis modes, wedge/toppling options, and statistics settings.

Download the blankProject.rocslope2 for this example.

Code Snippet: Project Settings#
from rocslope2.RocSlope2Modeler import RocSlope2Modeler
from rocslope2.PropertyEnums import UnitSystem, SamplingMethod
from rocslope2.projectSettings.ProjectSettingsEnum import (
    OrientationDefinition,
    BlockShape,
    BlockGeneration,
    TopplingModel,
    AnalysisType,
    PseudoRandomNumberGeneration,
)
import os
import inspect

current_file = inspect.getfile(lambda: None)
current_dir = os.path.dirname(os.path.abspath(current_file))
example_model = os.path.join(current_dir, "example_models", "blankProject.rocslope2")

RocSlope2Modeler.startApplication()
modeler = RocSlope2Modeler()
model = modeler.openFile(example_model)

project_settings = model.getProjectSettings()

project_settings.unitsTab.setSelectedUnitSystemMethod(UnitSystem.RFC_METRIC_MPA)

analysis = project_settings.analysisTab
analysis.setDesignFactorOfSafety(1.5)
analysis.setIsWedge(True)
analysis.setIsPlanar(True)
analysis.setIsToppling(True)
analysis.setSelectedOrientationDefinitionMethod(OrientationDefinition.USE_TRUE_DIP)

wedge = project_settings.wedgeTab
wedge.setSelectedBlockShapeMethod(BlockShape.BASAL_JOINT)
wedge.setIsIncludeSocketWedges(False)

toppling = project_settings.topplingTab
toppling.setSelectedBlockGenerationMethod(BlockGeneration.EQUAL_AREA)
toppling.setSelectedTopplingModelMethod(TopplingModel.BLOCK_TOPPLING)

statistics = project_settings.statisticsTab
statistics.setSelectedAnalysisTypeMethod(AnalysisType.DETERMINISTIC)
statistics.setSelectedSamplingMethod(SamplingMethod.LATIN_HYPERCUBE)
statistics.setNumberOfSamples(1000)
statistics.setSelectedPseudoRandomNumberGenerationMethod(PseudoRandomNumberGeneration.CONSTANT_SEED_VALUE)

print(f"Unit system: {project_settings.unitsTab.getSelectedUnitSystemMethod()}")
print(f"Design FoS: {analysis.getDesignFactorOfSafety()}")
print(f"Analysis type: {statistics.getSelectedAnalysisTypeMethod()}")

model.save()
model.close(saveProject=False)
modeler.closeProgram()

Output#

Unit system: UnitSystem.RFC_METRIC_MPA
Design FoS: 1.5
Analysis type: AnalysisType.DETERMINISTIC