Ejemplo n.º 1
0
class Aspen():
    def __init__(self, aspenFile):
        '''
		Parameters
		file: str, excel file
		'''

        CoInitialize()
        self.file = aspenFile
        self.COM = DispatchEx('Apwn.Document')
        self.COM.InitFromArchive2(self.file)

    def get_value(self, aspenPath):
        '''
		Parameters
		aspenPath: str, path in ASPEN tree
		
		Returns
		value: num or str, value in ASPEN tree node
		'''

        value = self.COM.Tree.FindNode(aspenPath).Value

        return value

    def set_value(self, aspenPath, value, ifFortran):
        '''
		Parameters
		aspenPath: str, path in ASPEN tree
		value: float or str, value to set
		ifFortran: bool, whether it is a Fortran variable
		'''

        if ifFortran:
            oldValue = self.COM.Tree.FindNode(aspenPath).Value

            self.COM.Tree.FindNode(aspenPath).Value = re.sub(
                r'(?<==).+', str(value), oldValue)

        else:
            self.COM.Tree.FindNode(aspenPath).Value = float(value)

    def run_model(self):

        self.COM.Reinit()
        self.COM.Engine.Run2()

    def save_model(self, saveFile):
        '''
		Parameters
		saveFile: str, file name to save (.bkp)
		'''

        self.COM.SaveAs(saveFile)

    def close(self):

        self.COM.Close()