def resolve_simulation(self, fc, ct):
        """
        Resolve simulation specifications.
        """

        for run in ct.simulation.runs:
            try:
                run2 = Run(fc.component_references[run.component].referenced_component,
                           run.variable,
                           fc.parameters[run.increment].numeric_value,
                           fc.parameters[run.total].numeric_value)
            except:
                raise ModelError("Unable to resolve simulation run parameters in component '{0}'",
                                 fc.id)
            fc.simulation.add(run2)

        for record in ct.simulation.records:
            try:
                record2 = Record(fc.paths[record.quantity].value,
                                 fc.parameters[record.scale].numeric_value if record.scale else 1,
                                 fc.texts[record.color].value if record.color else '#000000')
            except:
                raise ModelError("Unable to resolve simulation record parameters in component '{0}'",
                                 fc.id)
            fc.simulation.add(record2)

        for event_record in ct.simulation.event_records:
            try:
                event_record2 = EventRecord(fc.paths[event_record.quantity].value,
                                 fc.texts[event_record.eventPort].value)
            except:
                raise ModelError("Unable to resolve simulation event_record parameters in component '{0}'",
                                 fc.id)
            fc.simulation.add(event_record2)

        for dd in ct.simulation.data_displays:
            try:
                dd2 = DataDisplay(fc.texts[dd.title].value,
                                  '')
                if 'timeScale' in fc.parameters:
                    dd2.timeScale = fc.parameters['timeScale'].numeric_value
            except:
                raise ModelError("Unable to resolve simulation display parameters in component '{0}'",
                                 fc.id)
            fc.simulation.add(dd2)
                
        for dw in ct.simulation.data_writers:
            try:
                path = '.'
                if fc.texts[dw.path] and fc.texts[dw.path].value:
                    path = fc.texts[dw.path].value
                
                dw2 = DataWriter(path,
                                 fc.texts[dw.file_name].value)
            except:
                raise ModelError("Unable to resolve simulation writer parameters in component '{0}'",
                                 fc.id)
            fc.simulation.add(dw2)
                
        for ew in ct.simulation.event_writers:
            try:
                path = '.'
                if fc.texts[ew.path] and fc.texts[ew.path].value:
                    path = fc.texts[ew.path].value
                
                ew2 = EventWriter(path,
                                 fc.texts[ew.file_name].value,
                                 fc.texts[ew.format].value)
            except:
                raise ModelError("Unable to resolve simulation writer parameters in component '{0}'",
                                 fc.id)
            fc.simulation.add(ew2)
Resolve simulation specifications.