import os
import sys
import comtypes.client


def scaling (model):
    """ Retrieves base reactions from EQ,SPEC in the model."""
    
    ret1 = SapModel.Results.Setup.DeselectAllCasesAndCombosForOutput()
    ret1 = SapModel.Results.Setup.SetCaseSelectedForOutput("EQX")
    ret1 = SapModel.Results.BaseReact()


    ret2 = SapModel.Results.Setup.DeselectAllCasesAndCombosForOutput()
    ret2 = SapModel.Results.Setup.SetCaseSelectedForOutput("EQY")
    ret2 = SapModel.Results.BaseReact()

    ret3 = SapModel.Results.Setup.DeselectAllCasesAndCombosForOutput()
    ret3 = SapModel.Results.Setup.SetCaseSelectedForOutput("SPECX")
    ret3 = SapModel.Results.BaseReact()

    ret4 = SapModel.Results.Setup.DeselectAllCasesAndCombosForOutput()
    ret4 = SapModel.Results.Setup.SetCaseSelectedForOutput("SPECY")
    ret4 = SapModel.Results.BaseReact()

    # get_scale_factor = SapModel.CaseResponseSpectrum.GetLoads("SPECX")
    # scale_factor = get_scale_factor[3]



    FXeq = ret1[4]
    FYeq = ret2[5]
    FX_spec = ret3[4]
    FY_spec = ret4[5]


    print("FX_eq",FXeq)
    print("FY_eq",FYeq)
    print("FX_spec",FX_spec)
    print("FY_spec",FY_spec)
    

    



ProgramPath = r"C:\Program Files\Computers and Structures\ETABS 17\ETABS.exe"

ModelPath = r"C:\Users\Mostafa\Desktop\python_exercise\example.EDB"
helper = comtypes.client.CreateObject('ETABSv17.Helper')
helper = helper.QueryInterface(comtypes.gen.ETABSv17.cHelper)
#create API helper object
myETABSObject = helper.CreateObject(ProgramPath)

#start ETABS application
myETABSObject.ApplicationStart()
#create SapModel object
SapModel = myETABSObject.SapModel
#initialize model
ret = SapModel.InitializeNewModel()

#open an existing file
ret = SapModel.File.OpenFile(ModelPath)
#run model (this will create the analysis model)
ret = SapModel.Analyze.RunAnalysis()
# selected_objects=SapModel.SelectObj.GetSelected();
# (number_objects_selected,(object_enumeration),(object_id),return_value

result= scaling(SapModel)



    


