Hide Table of Contents
SOLIDWORKS Electrical API 2024.0.0
Electrical API
Getting Started

Introduction

This online reference guide documents the Electrical Application Programming Interface (API).

API Help can be downloaded to have it available locally. You have to reach index.html from downloaded package to launch it.

Every supported interface available in the API is documented; undocumented API interfaces and functions are not supported and should not be used. Obsolete APIs are not supported. SOLIDWORKS recommends that you use the most current version of the API. Obsolete APIs are not supported. We recommend that you use the most current version of the API.

Usage

Use of the API assumes that you are familiar with Java, Python, VBA, VB.NET, Visual C#, Visual C++ 6.0 or Visual C++/CLI.

Note
All of the sample code supplied is intended to demonstrate ways of using the API. No representations or warranties are made regarding these samples. Intellectual property rights of the samples remain with Dassault Systemes.

Get Application

Application must be started to get a valid instance, then you just need to call:

Sample in C++

EwAPI::IEwInteropFactoryXPtr iEwInteropFactoryXPtr;
iEwInteropFactoryXPtr.GetActiveObject(__uuidof(EwAPI::EwInteropFactoryX));
EwAPI::IEwApplicationXPtr iEwApplicationXPtr = nullptr;
if (iEwInteropFactoryXPtr != nullptr)
iEwApplicationXPtr = iEwInteropFactoryXPtr->getEwApplication("License Code(*)", &errorCode);
EwErrorCode
All errors codes for this API.
Definition: EnumDefinition.idl:24
@ EW_UNDEFINED_ERROR
Undefined error.
Definition: EnumDefinition.idl:27

Sample in C#

EwErrorCode ewErrorCode = EwErrorCode.EW_UNDEFINED_ERROR;
EwInteropFactoryX ewInteropFactory = (EwInteropFactoryX)Marshal.GetActiveObject"EwAPI.EwInteropFactoryX");
EwApplicationX ewApplicationX = null;
if(ewInteropFactory != null)
ewApplicationX = ewInteropFactory.getEwApplication("License Code(*)", out ewErrorCode);

Sample in Python

prog_id = 'EwAPI.EwInteropFactoryX'
import comtypes.gen.EwAPI as EwAPI
from comtypes.gen.EwAPI import *
try:
ew_interop_factory = comtypes.client.GetActiveObject(prog_id)
except:
print("Electrical is not started")
error_code, i_apix = ew_interop_factory.getEwAPI()
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
print("fail ew_interop_factory.getEwAPI: ", error_code)
error_code, ew_application = ew_interop_factory.getEwApplication('License Code(*)')
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
print("fail ew_interop_factory.getEwApplication: ", error_code)
error_code, ew_environment = ew_application.getEwEnvironment()
ew_environment=comtypes.client.dynamic._Dispatch(ew_environment._comobj).QueryInterface(IEwEnvironmentX)

Sample in VB

Dim ewInteropFactory As EwAPI.ewInteropFactoryX
Dim ewApplication As EwAPI.ewApplicationX
Dim ewErrorCode As EwAPI.ewErrorCode
On Error GoTo Error_MayCauseAnError
ewInteropFactory = GetObject(, "EwAPI.EwInteropFactoryX.1")
'Get the application from the factory
ewApplicationX = ewInteropFactory.getEwApplication("License Code(*)", ewErrorCode)

Start Application in Background mode

Access the API without starting the application, then you just need to call:

Sample in C++

EwAPI::IEwInteropFactoryXPtr iEwInteropFactoryXPtr;
iEwInteropFactoryXPtr.CreateInstance(__uuidof(EwAPI::EwInteropFactoryX));
EwAPI::EwAPIX ewApi = iEwInteropFactoryXPtr->getEwAPI(&errorCode);
if (ewApi != nullptr)
errorCode = ewApi.initializeInBackground(0);
EwAPI::IEwApplicationXPtr iEwApplicationXPtr = nullptr;
if (ewApi != nullptr)
iEwApplicationXPtr = ewApi.getEwApplication("License Code(*)", &errorCode);

Sample in C#

EwErrorCode ewErrorCode = EwErrorCode.EW_UNDEFINED_ERROR;
EwInteropFactoryX ewInteropFactory = new EwInteropFactoryX();
EwAPIX ewApi = ewInteropFactory.getEwAPI(out ewErrorCode);
if (ewApi != null)
ewErrorCode = ewApi.initializeInBackground(0);
EwApplicationX ewApplicationX = null;
if (ewApi != null)
ewApplicationX = ewAPI.getEwApplication("License Code(*)", out ewErrorCode);

Sample in Python

prog_id = 'EwAPI.EwInteropFactoryX'
import comtypes.gen.EwAPI as EwAPI
from comtypes.gen.EwAPI import *
ew_interop_factory = comtypes.client.CreateObject(prog_id)
error_code, i_apix = ew_interop_factory.getEwAPI()
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
print("fail ew_interop_factory.getEwAPI: ", error_code)
error_code = ew_API.initializeInBackground(0);
error_code, ew_application = ew_interop_factory.getEwApplication('License Code(*)')
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
print("fail ew_interop_factory.getEwApplication: ", error_code)
error_code, ew_environment = ew_application.getEwEnvironment();

Sample in VB

Dim ewInteropFactory As New EwAPI.ewInteropFactoryX
Dim ewAPI As EwAPI.ewAPIX
Dim ewApplication As EwAPI.ewApplicationX
Dim ewErrorCode As EwAPI.ewErrorCode
On Error GoTo Error_MayCauseAnError
'Get the EwAPI from the factory
ewAPI = ewInteropFactory.getEwAPI(ewErrorCode)
'Initialise the EwApi in Background mode
ewErrorCode = ewAPI.initializeInBackground(0)
'Get the application from the EwAPI
ewApplication = ewAPI.getEwApplication("License Code(*)", ewErrorCode)

And after that?

After you should:

All start samples

All Samples in C++

int main ()
{
getApplication();
return 0;
}
void getApplication()
{
EwAPI::IEwInteropFactoryXPtr iEwInteropFactoryXPtr;
iEwInteropFactoryXPtr.GetActiveObject(__uuidof(EwAPI::EwInteropFactoryX));
EwAPI::IEwApplicationXPtr iEwApplicationXPtr = nullptr;
if (iEwInteropFactoryXPtr != nullptr)
iEwApplicationXPtr = iEwInteropFactoryXPtr->getEwApplication("License Code(*)", &errorCode);
}
void startApplicationInBackground()
{
EwAPI::IEwInteropFactoryXPtr iEwInteropFactoryXPtr;
iEwInteropFactoryXPtr.CreateInstance(__uuidof(EwAPI::EwInteropFactoryX));
EwAPI::EwAPIX ewApi = iEwInteropFactoryXPtr->getEwAPI(&errorCode);
if (ewApi != nullptr)
errorCode = ewApi.initializeInBackground(0);
EwAPI::IEwApplicationXPtr iEwApplicationXPtr = nullptr;
if (ewApi != nullptr)
iEwApplicationXPtr = ewApi.getEwApplication("License Code(*)", &errorCode);
}

All Samples in C#

using EwAPI;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
}
static void getApplication()
{
EwErrorCode ewErrorCode = EwErrorCode.EW_UNDEFINED_ERROR;
EwInteropFactoryX ewInteropFactory = (EwInteropFactoryX)Marshal.GetActiveObject"EwAPI.EwInteropFactoryX");
EwApplicationX ewApplicationX = null;
if(ewInteropFactory != null)
ewApplicationX = ewInteropFactory.getEwApplication("License Code(*)", out ewErrorCode);
}
static void startApplicationInBackground()
{
EwErrorCode ewErrorCode = EwErrorCode.EW_UNDEFINED_ERROR;
EwInteropFactoryX ewInteropFactory = new EwInteropFactoryX();
EwAPIX ewApi = ewInteropFactory.getEwAPI(out ewErrorCode);
if (ewApi != null)
ewErrorCode = ewApi.initializeInBackground(0);
EwApplicationX ewApplicationX = null;
if (ewApi != null)
ewApplicationX = ewAPI.getEwApplication("License Code(*)", out ewErrorCode);
}
}
}

All Samples in Python

# -*- coding: utf-8 -*-
#import win32com.client as w32c
import comtypes.client
import comtypes
import inspect
lic_code = 'EWX1170910153590'
//! [Py_Get_Application]
prog_id = 'EwAPI.EwInteropFactoryX'
import comtypes.gen.EwAPI as EwAPI
from comtypes.gen.EwAPI import *
try:
ew_interop_factory = comtypes.client.GetActiveObject(prog_id)
except:
print("Electrical is not started")
error_code, i_apix = ew_interop_factory.getEwAPI()
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
print("fail ew_interop_factory.getEwAPI: ", error_code)
error_code, ew_application = ew_interop_factory.getEwApplication('License Code(*)')
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
print("fail ew_interop_factory.getEwApplication: ", error_code)
error_code, ew_environment = ew_application.getEwEnvironment()
ew_environment=comtypes.client.dynamic._Dispatch(ew_environment._comobj).QueryInterface(IEwEnvironmentX)
//! [Py_Get_Application]
//! [Py_Get_Application_BackgroundMode]
prog_id = 'EwAPI.EwInteropFactoryX'
import comtypes.gen.EwAPI as EwAPI
from comtypes.gen.EwAPI import *
ew_interop_factory = comtypes.client.CreateObject(prog_id)
error_code, i_apix = ew_interop_factory.getEwAPI()
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
print("fail ew_interop_factory.getEwAPI: ", error_code)
error_code = ew_API.initializeInBackground(0);
error_code, ew_application = ew_interop_factory.getEwApplication('License Code(*)')
if error_code != comtypes.gen.EwAPI.EW_NO_ERROR:
print("fail ew_interop_factory.getEwApplication: ", error_code)
error_code, ew_environment = ew_application.getEwEnvironment();
//! [Py_Get_Application_BackgroundMode]
ew_part_manager = ew_environment.getEwManufacturerPartManager()[1]
ewManufacturerPart = ew_part_manager.newEwManufacturerPart()
print(help(ewManufacturerPart))
print(ewError)

All Samples in VB

Imports System
Imports System.IO
Imports System.Text
Public Class testvb
Private Sub getApplication()
//! [Vb_Get_Application]
Dim ewInteropFactory As EwAPI.ewInteropFactoryX
Dim ewApplication As EwAPI.ewApplicationX
Dim ewErrorCode As EwAPI.ewErrorCode
On Error GoTo Error_MayCauseAnError
ewInteropFactory = GetObject(, "EwAPI.EwInteropFactoryX.1")
'Get the application from the factory
ewApplicationX = ewInteropFactory.getEwApplication("License Code(*)", ewErrorCode)
//! [Vb_Get_Application]
End Sub
Private Sub startApplicationInBackground()
//! [Vb_Get_Application_BackgroundMode]
Dim ewInteropFactory As New EwAPI.ewInteropFactoryX
Dim ewAPI As EwAPI.ewAPIX
Dim ewApplication As EwAPI.ewApplicationX
Dim ewErrorCode As EwAPI.ewErrorCode
On Error GoTo Error_MayCauseAnError
'Get the EwAPI from the factory
ewAPI = ewInteropFactory.getEwAPI(ewErrorCode)
'Initialise the EwApi in Background mode
ewErrorCode = ewAPI.initializeInBackground(0)
'Get the application from the EwAPI
ewApplication = ewAPI.getEwApplication("License Code(*)", ewErrorCode)
//! [Vb_Get_Application_BackgroundMode]
End Sub
Public Sub createNewProject(control As IRibbonControl)
//! [Vb_Create_New_Project]
Dim ewInteropFactory As New ewAPI.EwInteropFactoryX
Dim ewApplication As ewAPI.ewApplicationX
Dim ewEnvironment As ewAPI.EwEnvironmentX
Dim ewErrorCode As ewAPI.ewErrorCode
On Error GoTo Error_MayCauseAnError
Set ewInteropFactory = GetObject(, "ewAPI.EwInteropFactoryX")
'Get the application from the factory
Set ewApplication = ewInteropFactory.getEwApplication("License Code(*)", ewErrorCode)
'Get the folder containing templates
Set ewEnvironment = ewApplication.getEwEnvironment(ewErrorCode)
Dim strTemplateFolderPath As String
strTemplateFolderPath = ewEnvironment.getFolderPath(ewAPI.EwEnvironmentFolderPathValue.kFolderPathProjectTemplate, ewErrorCode)
Dim strTemplateName As String
strTemplateName = "IEC"
Dim strFilePath As String
strFilePath = strTemplateFolderPath
strFilePath = strFilePath + strTemplateName
strFilePath = strFilePath + ".proj.tewzip"
Dim fso, msg
Set fso = CreateObject("Scripting.FileSystemObject")
If (fso.FileExists(strFilePath) = False) Then
Exit Sub
End If
' here we are calling the command to create a new project
' this command have two parameters: the template name and the language code
' if you don't pass those parameters you will be prompted to select them
Dim strCommand As String
strCommand = "ewNewProjectNoProperties "
strCommand = strCommand + strTemplateName
strCommand = strCommand + " EN"
ewErrorCode = ewApplication.runCommand(strCommand) '("ewNewProjectNoProperties IEC EN")
Set ewApplication = Nothing
Set ewEnvironment = Nothing
Set ewInteropFactory = Nothing
Exit_MayCauseAnError:
Exit Sub
Error_MayCauseAnError:
MsgBox "undefine error create new project", vbCritical, "Error"
' Resume execution with exit routine to exit function.
Resume Exit_MayCauseAnError
//! [Vb_Create_New_Project]
End Sub
Public Sub launchXlsAutomation(control As IRibbonControl)
//! [Vb_launchXlsAutomation]
Dim ewInteropFactory As New ewAPI.EwInteropFactoryX
Dim ewApplication As ewAPI.ewApplicationX
Dim ewEnvironment As ewAPI.EwEnvironmentX
Dim ewErrorCode As ewAPI.ewErrorCode
Dim ewProject As ewAPI.ewProjectX
On Error GoTo Error_MayCauseAnError
Set ewInteropFactory = GetObject(, "ewAPI.EwInteropFactoryX")
'Get the application from the factory
Set ewApplication = ewInteropFactory.getEwApplication("License Code(*)", ewErrorCode)
Set ewProject = ewApplication.getEwProjectCurrent(ewErrorCode)
If ewProject Is Nothing Then
'If ewErrorCode = EwAPI.ewErrorCode.EW_NO_ACTIVEPROJECT Then
MsgBox "You must create a new project before", vbCritical, "No Project"
Exit Sub
End If
If MsgBox("Do you want generate XLS file ?", vbYesNo + vbQuestion + vbDefaultButton2, "XLS Automation") = vbNo Then
Exit Sub
End If
Dim strCommand As String
strCommand = "ewXlsAutomation "
strCommand = strCommand + Workbooks(ThisWorkbook.Name).FullName
ewErrorCode = ewApplication.runCommand(strCommand)
Set ewApplication = Nothing
Set ewProject = Nothing
Set ewInteropFactory = Nothing
Exit_MayCauseAnError:
Exit Sub
Error_MayCauseAnError:
MsgBox "undefine error in XLS Automation", vbCritical, "Error"
' Resume execution with exit routine to exit function.
Resume Exit_MayCauseAnError
//! [Vb_launchXlsAutomation]
End Sub
End Class
Note
License Code(*): Contact your reseller to get your license code


Provide feedback on this topic

SOLIDWORKS welcomes your feedback concerning the presentation, accuracy, and thoroughness of the documentation. Use the form below to send your comments and suggestions about this topic directly to our documentation team. The documentation team cannot answer technical support questions. Click here for information about technical support.

* Required

 
*Email:  
Subject:   Feedback on Help Topics
Page:   SOLIDWORKS Electrical API: Getting Started
*Comment:  
*   I acknowledge I have read and I hereby accept the privacy policy under which my Personal Data will be used by Dassault Systèmes

Print Topic

Select the scope of content to print:




x

We have detected you are using a browser version older than Internet Explorer 7. For optimized display, we suggest upgrading your browser to Internet Explorer 7 or newer.

 Never show this message again
x

Web Help Content Version: API Help (English only) 2024 SP05

To disable Web help from within SOLIDWORKS and use local help instead, click Help > Use SOLIDWORKS Web Help.

To report problems encountered with the Web help interface and search, contact your local support representative. To provide feedback on individual help topics, use the “Feedback on this topic” link on the individual topic page.