Purpose
This document presents some samples of using API in Python.
- Note
- ew_application: application object previously created.
Create a new project
Create a project from specified template
def create_project_from_template(self):
"""
This method creates a new project from the Template.
:return: True if no error detected
"""
if self.ew_environment == None:
return False
error_code, ew_projectmanagerx = self.ew_environment.getEwProjectManager();
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
error_code, ew_projectX = ew_projectmanagerx.newEwProject();
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
error_code = ew_projectX.setName("IEC-Test1");
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
error_code = ew_projectX.insertFromTemplate("IEC");
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
return True
Open a project
Open a project from name
def open_project_by_name(self):
"""
This method open a project by this name.
:return: True if no error detected
"""
if self.ew_environment == None:
return False
error_code, ew_projectmanagerx = self.ew_environment.getEwProjectManager();
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
error_code, ew_projectX = ew_projectmanagerx.findEwProjectByName('FooProject');
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
error_code = ew_projectX.open(comtypes.gen.EwOpenProjectMode.kOpenForWrite);
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
return True
Open a project from ID
def open_project_by_ID(self, lID):
"""
This method open a project by this ID.
:return: True if no error detected
"""
if self.ew_environment == None:
return False
error_code, ew_projectmanagerx = self.ew_environment.getEwProjectManager();
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
error_code, ew_projectX = ew_projectmanagerx.findEwProjectByID(lID);
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
error_code = ew_projectX.open(comtypes.gen.EwOpenProjectMode.kOpenForWrite);
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
return True
Open a project from id in the Application
def open_project_by_ID_in_application(self, lID):
"""
This method open a project by ID in the main Application.
:return: True if no error detected
"""
if self.ew_application == None:
return False
error_code, ew_projectmanagerx = self.ew_application.openEwProjectID(lID);
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
return True
Open the current project from the Application
def open_current_project(self):
"""
This method open the current project.
:return: True if no error detected
"""
if self.ew_application == None:
return False
error_code, ew_projectX = self.ew_application.getEwProjectCurrent();
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
return True
Open a project from file path
def open_project_by_filepath(self):
"""
This method open a project by the file path.
:return: True if no error detected
"""
if self.ew_environment == None:
return False
error_code, ew_projectmanagerx = self.ew_environment.getEwProjectManager();
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
error_code, ew_projectX = ew_projectmanagerx.findProjectFromFilePath('FilePath');
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
error_code = ew_projectX.open(comtypes.gen.EwOpenProjectMode.kOpenForWrite);
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
return True
Open a project from name and lock it for the other user
def open_project_by_name_and_lock(self):
"""
This method open a project by this name and lock it for the other user.
:return: True if no error detected
"""
if self.ew_environment == None:
return False
error_code, ew_projectmanagerx = self.ew_environment.getEwProjectManager();
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
error_code, ew_projectX = ew_projectmanagerx.findEwProjectByName('FooProject');
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
error_code = ew_projectX.open(comtypes.gen.EwOpenProjectMode.kOpenForWriteDenyWrite);
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
return True
Modify project properties
- Note
- ew_projectX: project object previously created.
Change some properties
def open_properties_project(self):
"""
This method modify properties of the project.
:return: True if no error detected
"""
if self.ew_projectX == None:
return False
error_code = self.ew_projectX.setName(sProjectName)
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
error_code = self.ew_projectX.setCustomerName("Ville de paris")
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
error_code = self.ew_projectX.setCustomerAddress1("Paris")
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
error_code = self.ew_projectX.setContractNumber("666")
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
error_code = self.ew_projectX.setUserData(0, "MyUserData0")
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
error_code = self.ew_projectX.setUserData(1, "MyUserData1")
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
error_code = self.ew_projectX.setTranslatedData(0, "FR", "Bonjour")
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
error_code = self.ew_projectX.setTranslatedData(0, "EN", "Hi")
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
error_code = self.ew_projectX.setTranslatedData(0, "DE", "Hallo")
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
error_code = self.ew_projectX.update()
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
return True
Change the project language
def open_properties_language_project(self):
"""
This method modify the language properties of the project.
:return: True if no error detected
"""
if self.ew_projectX == None:
return False
error_code, ew_projectconfigurationx = self.ew_projectX.getEwProjectConfiguration()
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
ew_projectconfigurationx.setEwProjectConfigValue(comtypes.gen.EwAPI.kCurrentCodeLg, "fr")
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
ew_projectconfigurationx.setEwProjectConfigValue(comtypes.gen.EwAPI.kCodeLg2, "en")
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
return True
Use project file
- Note
- ew_projectX: project object previously created.
Open a project file
To do that you must use the command EWOPEN command.
EWOPENFILE "D:\\ProgramData\\...\\Projects\\1216\\Drawings\\11319.ewg"
This command takes one parameter, the file path to open. To obtain this path use the getFilePath API from EwProjectFile object.
str_file_path = ew_project_file.getFilePath();
str_command = "EWOPEN " + str_file_path;
ew_application.runcommand(str_command);
Insert a symbol in a project file
def insert_symbol(self):
"""
This method insert symbol on a file.
:return: True if no error detected
"""
if self.ew_projectX == None:
return False
error_code, ew_project_component_manager = self.ew_projectX.getEwProjectComponentManager();
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
error_code, ew_project_component = ew_project_component_manager.newEwProjectComponent();
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
error_code = ew_project_component.setTag('ComponentMark');
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
error_code = ew_project_component.insert();
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
error_code, ew_project_symbol = ew_project_file.newEwProjectSymbol();
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
error_code = ew_project_symbol.setEwSymbolName('TR-DI007');
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
error_code = ew_project_symbol.setRotationAngle(90);
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
error_code = ew_project_symbol.setXPosition(150);
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
error_code = ew_project_symbol.setYPosition(100);
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
error_code = ew_project_symbol.setObjectID(ew_project_component.getID());
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
error_code = ew_project_symbol.insert();
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
return True
Some Process and Export on Project
Export report
Export report in Excel
def do_export_report_in(self):
"""
This method exports all reports.
:return: True if no error detected
"""
if self.ew_projectX == None:
return False
error_code, ew_project_export_reportX = self.ew_projectX.newEwProjectExportReport();
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
error_code, ew_projectX = ew_project_export_reportX.setTargetFolder('a TMP folder');
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
error_code, ew_projectX = ew_project_export_reportX.setExportAllReports(FALSE);
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
error_code, ew_projectX = ew_project_export_reportX.setEwProjectDataExportType(comtypes.gen.EwAPI.EwProjectDataExportType.kProjectDataExportReport);
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
error_code, ew_projectX = ew_project_export_reportX.setEwFileExtension(comtypes.gen.EwAPI.EwFileExtension.kFileExtensionXLS);
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
error_code, ew_projectX = ew_project_export_reportX.setOneSheetByBreak(TRUE);
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
error_code, ew_projectX = ew_project_export_reportX.doExcelExport();
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
return True
Export specified report in Excel
def export_specified_report_in_excel(self):
"""
This method exports specified reports.
:return: True if no error detected
"""
if self.ew_projectX == None:
return False
error_code,ew_project_entity_3D_manager = self.ew_projectX.getEwProjectEntity3DManager();
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
error_code, ew_projectX = ew_project_export_reportX.setTargetFolder('a TMP folder');
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
error_code, ew_projectX = ew_project_export_reportX.setExportAllReports(TRUE);
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
error_code, ew_projectX = ew_project_export_reportX.setEwProjectDataExportType(comtypes.gen.EwAPI.EwProjectDataExportType.kProjectDataExportReport);
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
error_code, ew_projectX = ew_project_export_reportX.setEwFileExtension(comtypes.gen.EwAPI.EwFileExtension.kFileExtensionXLS);
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
error_code, ew_projectX = ew_project_export_reportX.setAddCreatedFileToProject(TRUE);
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
error_code, ew_projectX = ew_project_export_reportX.setOneSheetByBreak(TRUE);
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
error_code, ew_project_report_manager = ew_projectX.getEwProjectReportManager();
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
error_code, ew_project_report = ew_project_report_manager.find('Folio_Metric.xml');
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
array_ID = [];
array_ID[0] = ew_project_report.getID();
error_code, ew_project_report = ew_project_report_manager.find('CableGroupedByReference_Metric.xml');
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
array_ID[1] = ew_project_report.getID();
error_code, ew_projectX = ew_project_export_reportX.setEwProjectReportIDArray(array_ID);
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
error_code, ew_projectX = ew_project_export_reportX.doExcelExport();
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
return True
Run Excel Automation
- Note
- ew_projectX: project object previously created.
def open__project_excel_automation(self):
"""
This method do an excel automation on the project.
:return: True if no error detected
"""
if self.ew_projectX == None:
return False
error_code, ew_projectexcelautomation = self.ew_projectX.newEwProjectExcelAutomation();
strlogfilepath = "E:\\test.log"
strxlsfilepath = "E:\\OriginDestinationExcelScript.xlsx"
error_code = ew_projectexcelautomation.setExcelFilePath(strxlsfilepath);
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
error_code = ew_projectexcelautomation.setGenerateLog(True);
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
error_code = ew_projectexcelautomation.setLogFilePath(strlogfilepath);
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
error_code = ew_projectexcelautomation.doExcelAutomation();
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
return True
Renumber
- Note
- ew_projectX: project object previously created.
Renumber the wires
def open_renumber_wires(self):
"""
This method renumber wires in the project.
:return: True if no error detected
"""
if self.ew_projectX == None:
return False
error_code, ew_projectnumberwires = self.ew_projectX.newEwProjectNumberWires()
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
error_code = ew_projectnumberwires.setActionOnManualNumber(True)
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
error_code = ew_projectnumberwires.setResetPosition(False)
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
error_code = ew_projectnumberwires.setSelectionType(comtypes.gen.EwAPI.kSelectionAll)
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
error_code = ew_projectnumberwires.process(comtypes.gen.EwAPI.kReNumberWiresAction)
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
return True
Add Origin-Destination Arrow Automatically
def do_origin_destination_arrow_automatically(self):
"""
This method do origin destination arrow automatically in the project.
:return: True if no error detected
"""
if self.ew_projectX == None:
return False
error_code, ew_project_automatic_arrows = self.ew_projectX.newEwProjectAutomaticArrows()
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
error_code = ew_project_automatic_arrows.setActionOnManual(False)
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
ewErrorCode = ew_project_automatic_arrows.setSelectionType(comtypes.gen.EwAPI.kSelectionAll);
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
error_code = ew_project_automatic_arrows.process(comtypes.gen.EwAPI.kAutoArrowActionAutoConnect)
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
return True
Renumber the components
def open_renumber_components(self):
"""
This method renumber components in the project.
:return: True if no error detected
"""
if self.ew_projectX == None:
return False
error_code, ew_projectnumbermarks = self.ew_projectX.newEwProjectNumberMarks()
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
error_code = ew_projectnumbermarks.setActionOnManualNumber(True)
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
error_code = ew_projectnumbermarks.process(comtypes.gen.EwAPI.kReNumberMarksAction)
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
return True
Generate terminal strip
- Note
- ew_projectX: project object previously created.
def open_generate_terminal_strip(self):
"""
This method generate terminal strip in the project.
:return: True if no error detected
"""
if self.ew_projectX == None:
return False
error_code, ew_projectgeneratetsdrawingx = self.ew_projectX.newEwProjectGenerateTSDrawing()
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
error_code = ew_projectgeneratetsdrawingx.generate()
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
return False
return True