{"id":370,"date":"2019-03-25T17:30:31","date_gmt":"2019-03-25T20:30:31","guid":{"rendered":"http:\/\/xexeu.elipse.com.br\/pt\/creating-templates-for-e3-studios-importexport-tool\/"},"modified":"2020-09-02T13:13:30","modified_gmt":"2020-09-02T16:13:30","slug":"creating-templates-for-the-import-export-tool-in-e3-studio","status":"publish","type":"post","link":"https:\/\/kb.elipse.com.br\/en\/creating-templates-for-the-import-export-tool-in-e3-studio\/","title":{"rendered":"Creating templates for the import\/export tool in E3 Studio."},"content":{"rendered":"<h2><u><b><span style=\"font-size: large;\">1. INTRODUCTION<\/span><\/b><\/u><\/h2>\n<p>The import\/export tool in <a href=\"https:\/\/kb.elipse.com.br\/en\/category\/english\/elipse-e3-en\/studio-2\/\" target=\"_blank\" rel=\"noopener noreferrer\">E3 Studio<\/a> allows you to record CSV files containing information about the objects in <a href=\"https:\/\/www.elipse.com.br\/en\/produto\/elipse-e3\/\" target=\"_blank\" rel=\"noopener noreferrer\">Elipse E3<\/a>, and later use it to create new objects via templates. The information in the file include properties, links, and object collections.<\/p>\n<p>The new Elipse E3&#8217;s import\/export process has worked since version 2.5, and is now template-based. Templates are INI files (Windows&#8217;s initialization files) we use for setting up the import\/export tool. With them, you can define items such as the columns separator that will be employed in the CSV file, its columns, etc. Some templates come with Elipse E3&#8217;s latest installation, but you can also create templates that are tailored for your application&#8217;s specific needs.<\/p>\n<p>In this article, we will show you how to create templates for every situation, as well as usage tips for benefiting from all features in this tool.<\/p>\n<p>&nbsp;<\/p>\n<h2><u><b><span style=\"font-size: large;\">2. UNDERSTANDING TEMPLATE STRUCTURE\u00a0<\/span><\/b><\/u><\/h2>\n<p>Although they are text files, templates should abide by a certain structure so that they can be read by the import\/export tool. This structure is the same you will use for Windows&#8217;s initialization files (INI).\u00a0 These files organization comes in sections; later, you will be able to set up the variables in these sections individually. For example, you can find the <strong>Separator<\/strong> variable in the <strong>Configuration<\/strong> section; this variable sets up the type of columns separator to be used.<\/p>\n<p>The code below<\/p>\n<pre><span style=\"font-family: Courier New;\">[Configuration]<\/span>\r\n<span style=\"font-family: Courier New;\">Separator=',' <\/span><\/pre>\n<p>means you&#8217;ll have to use a comma as the CSV file separator.<\/p>\n<h3>2.1 INI files format<\/h3>\n<p>Usually, INI files follow this format:<\/p>\n<ul>\n<li>The file is organized into sections, and each section will then contain one or more variables. Their names are identified by a name between brackets.<\/li>\n<li>Variables are any words before the &#8220;=&#8221; symbol. Therefore, a section <strong>cannot<\/strong> contain two variables with the same name.<\/li>\n<li>Likewise, blank lines are ignored.<\/li>\n<li>The text following the &#8220;;&#8221; character is considered as a comment, and consequently disregarded in the file interpretation.<\/li>\n<\/ul>\n<p>They are user-friendly, which means the user will be able to edit it easily. You can write a template with a regular text editor, or base it on an old template, or even start one from scratch.<\/p>\n<p>The templates used in Elipse E3 allow establishing new names for the CSV file columns, as well as other types of objects. Besides, they also allow grouping multiple properties onto the same column. This can be done by setting up identifiers, which are keywords used in the CSV file and associated to properties or classes in the INI file.<\/p>\n<p>At E3 Studio, you can set up the import\/export templates with the sections and variables presented below. Some of them are mandatory for export, and will be indicated as such in the text, but for the import process, they are all optional. If you omit them, Elipse E3 will them assume the default standard.<\/p>\n<h3><\/h3>\n<h3><span style=\"color: #ff0000;\"><b>[Header]<\/b><\/span><\/h3>\n<p>In this section, you can establish all the allowed identifiers for column names and object types; likewise, you can also establish the order of the CSV file columns while exporting. This section is mandatory for export, and the defined variables are:<\/p>\n<p><b>header<\/b>: In this variable, you must list all columns, separated by a comma and in the order they should be displayed in the CSV file. If the column name is not the same as the property, use a identifier in the <strong>header<\/strong> variable and then link it to the property&#8217;s real name via a variable in the [Columns] section. This variable is mandatory for the export process.<\/p>\n<p><b>types<\/b>: Establishes the identifiers for the object types allowed in the CSV file. You must list all identifiers in this variable separated by commas. Set up this variable if any identifier is different from the object&#8217;s class name. In this case, there must be a variable for every identifier in the [Types] section.<\/p>\n<pre><span style=\"font-family: Courier New;\">[Header]<\/span>\r\n<span style=\"font-family: Courier New;\">header=ObjectType,Name,DocString,N1\/B1,N2\/B2,N3\/B3,N4\/B4,Scan,AllowRead<\/span>\r\n<span style=\"font-family: Courier New;\">types=Tag,Bloco,Elemento <\/span><\/pre>\n<h3><\/h3>\n<h3><b><span style=\"color: #ff0000;\">[Configuration]<\/span><\/b><\/h3>\n<p>In this section, you can establish the tool&#8217;s general configurations. The defined variables are:<\/p>\n<p><b>separator<\/b>: Establishes the separator that will separate columns in the CSV files.<\/p>\n<p><b>root<\/b>: Establishes whether the root object (from where the import\/export was called) is also imported\/exported with its children objects. This option is available from version 2.5 on; previously, the root object (I\/O Driver or Alarms Area) could not be exported. In the import process, the root object won&#8217;t be created, only its properties are updated.<\/p>\n<p><b>link<\/b>: Establishes if you will import\/export the object&#8217;s associations. The tool&#8217;s latest version allows these associations to be exported to the CSV file and then imported to new E3 objects. For the export process, a new line is added to the CSV file per association, identifying its type; an extra column is created for each property in the association. For the import process, each identified line generates an association in the corresponding property.<\/p>\n<p><b>collection<\/b>: Establishes if you will import\/export objects collection; likewise, properties in the collections generate new columns in the file. For the import process, you can&#8217;t create a collection, only edit properties values. So, the collection must have been already created in the object before you start importing.<\/p>\n<p><b>objectduplicated<\/b>: Establishes the object&#8217;s behavior when you import another object of the same name: overwrite the older object, create a new object with a new name, or keep the existing object.<\/p>\n<p><b>bindduplicated<\/b>: Establishes if you should replace an old association with a newer one when it already exists in a previously imported property.<br \/>\n<span style=\"font-family: Courier New;\"><br \/>\n<\/span><\/p>\n<pre><span style=\"font-family: Courier New;\">[Configuration]<\/span>\r\n<span style=\"font-family: Courier New;\">separator=','<\/span>\r\n<span style=\"font-family: Courier New;\">root=true<\/span>\r\n<span style=\"font-family: Courier New;\">link=true<\/span>\r\n<span style=\"font-family: Courier New;\">collection=true<\/span>\r\n<span style=\"font-family: Courier New;\">objectduplicated=askalways<\/span>\r\n<span style=\"font-family: Courier New;\">bindduplicated=askalways<\/span><\/pre>\n<h3><\/h3>\n<h3><b><span style=\"color: #ff0000;\">[Types]<\/span><\/b><\/h3>\n<p>In this section, the object type identifiers relate to the actual classes. All identifiers listed in the section&#8217;s <strong>types<\/strong> variable [Header] that are not equal to an E3 object&#8217;s class name should be in the section&#8217;s documentation. Each identifier has a variable in format = .<\/p>\n<pre><span style=\"font-family: Courier New;\">[Types] <\/span>\r\n<span style=\"font-family: Courier New;\">Tag=IOTag<\/span>\r\n<span style=\"font-family: Courier New;\">Bloco=IOBlock<\/span>\r\n<span style=\"font-family: Courier New;\">Elemento=IOBlockElement<\/span><\/pre>\n<h3><\/h3>\n<h3><span style=\"color: #ff0000;\"><b>[Columns]<\/b><\/span><\/h3>\n<p>In this section, the columns name identifiers relate to the properties names. All identifiers listed in the section&#8217;s <strong>header<\/strong> variable [Header] that are not equal to a property name should be in the section&#8217;s documentation. Each identifier has a variable in format = .<\/p>\n<pre><\/pre>\n<pre><span style=\"font-family: Courier New;\">[Columns] <\/span>\r\n<span style=\"font-family: Courier New;\">N1\/B1=N1,B1<\/span>\r\n<span style=\"font-family: Courier New;\">N2\/B2=N2,B2<\/span>\r\n<span style=\"font-family: Courier New;\">N3\/B3=N3,B3<\/span>\r\n<span style=\"font-family: Courier New;\">N4\/B4=N4,B4<\/span><\/pre>\n<h3><\/h3>\n<h3><span style=\"color: #ff0000;\"><b>[Filter]<\/b><\/span><\/h3>\n<p>In this section, you will establish object classes for import\/export. Only one of the following variables can go at a time.<\/p>\n<p><b>include<\/b>: Lists the E3 object classes for import\/export. When this variable is defined, only the classes in this list will be imported\/exported.<\/p>\n<p><b>exclude<\/b>: Lists the E3 object classes forbidden from import\/export. When this variable is defined, all classes except this one are imported\/exported.<\/p>\n<pre><span style=\"font-family: Courier New;\">[Filter]<\/span>\r\n<span style=\"font-family: Courier New;\">exclude=IOFolder ; importa\/exporta tudo, exceto IOFolders<\/span><\/pre>\n<p>&nbsp;<\/p>\n<h4><b>TEMPLATE EXAMPLE:<\/b><br \/>\n<span style=\"font-family: Courier New;\"><br \/>\n<\/span><\/h4>\n<pre><span style=\"font-family: Courier New;\">[Header]<\/span>\r\n<span style=\"font-family: Courier New;\">header=ObjectType,Name,DocString,N1\/B1,N2\/B2,N3\/B3,N4\/B4,Scan,AllowRead<\/span>\r\n<span style=\"font-family: Courier New;\">types=Tag,Bloco,Elemento<\/span><span style=\"font-family: Courier New;\">[Configuration]<\/span>\r\n<span style=\"font-family: Courier New;\">separator=',' ; utiliza a v\u00edrgula como separador de colunas no CSV<\/span>\r\n<span style=\"font-family: Courier New;\">root=true ; exporta\/importa o objeto-raiz<\/span>\r\n<span style=\"font-family: Courier New;\">link=true ; exporta\/importa as associa\u00e7\u00f5es<\/span>\r\n<span style=\"font-family: Courier New;\">collection=true ; exporta\/importa as cole\u00e7\u00f5es<\/span>\r\n<span style=\"font-family: Courier New;\">; sempre pergunta o que fazer quando encontrar um objeto duplicado objectduplicated=askalways<\/span>\r\n<span style=\"font-family: Courier New;\">; sempre pergunta o que fazer quando encontrar uma associa\u00e7\u00e3o duplicada bindduplicated=askalways<\/span><span style=\"font-family: Courier New;\">[Types]<\/span>\r\n<span style=\"font-family: Courier New;\">Tag=IOTag ; Tag na coluna ObjectType significa objeto da classe IOTag<\/span>\r\n<span style=\"font-family: Courier New;\">Bloco=IOBlock<\/span>\r\n<span style=\"font-family: Courier New;\">Elemento=IOBlockElement<\/span><span style=\"font-family: Courier New;\">[Columns]<\/span>\r\n<span style=\"font-family: Courier New;\">; N1\/B1 como nome de coluna significa uma das duas propriedades: N1 ou B1<\/span>\r\n<span style=\"font-family: Courier New;\">N1\/B1=N1,B1<\/span>\r\n<span style=\"font-family: Courier New;\">N2\/B2=N2,B2<\/span>\r\n<span style=\"font-family: Courier New;\">N3\/B3=N3,B3<\/span>\r\n<span style=\"font-family: Courier New;\">N4\/B4=N4,B4<\/span><span style=\"font-family: Courier New;\">[Filter]<\/span>\r\n<span style=\"font-family: Courier New;\">exclude=IOFolder ; importa\/exporta tudo, exceto IOFolders<\/span><\/pre>\n<h2><\/h2>\n<h2><u><b><span style=\"font-size: large;\">3. CREATING A TEMPLATE<\/span><\/b><\/u><\/h2>\n<p>You can create a template not only via text editor, but also with Elipse E3&#8217;s Template Manager. The first option requires knowledge about template structure (as seen in the previous chapter); the Template Manager, on the other hand, features an interface that facilitates the configuration of the desired options.<\/p>\n<h3><b>3.1. Creating a simple template via text editor\u00a0<\/b><\/h3>\n<p>In this case, you must follow some ground rules:<\/p>\n<ul>\n<li>Section names must necessary come between brackets and be isolated on their own row.<\/li>\n<li>The system does not differentiate between lower and upper cases for section and variables names and other values. Since no two variables with the same name are allowed in a section, upper and lower cases can&#8217;t help telling sections and variables apart.<\/li>\n<li>Blanks are ignored around the = signal, but they count around commas separating values in the same variable.<\/li>\n<\/ul>\n<p>For example, this snippet<\/p>\n<pre><span style=\"font-family: Courier New;\">[Header]<\/span>\r\n<span style=\"font-family: Courier New;\">Header=ObjectType, Name<\/span><\/pre>\n<p>means the column&#8217;s name is <strong>Name<\/strong>, with a blank space at the beginning. Since this is not considered a property&#8217;s name, it will be handled as an identifier. If this variable does not relate to the right property, the column will be disregarded. To keep this from happening, the correct snippet should be<br \/>\n<span style=\"font-family: Courier New;\"><br \/>\n<\/span><\/p>\n<pre><span style=\"font-family: Courier New;\">[Header]<\/span>\r\n<span style=\"font-family: Courier New;\">Header=ObjectType, Name<\/span>\r\n<span style=\"font-family: Courier New;\">[Columns]<\/span>\r\n<span style=\"font-family: Courier New;\">Name = Name<\/span><\/pre>\n<p>(with a blank space before the variable) or<\/p>\n<pre><span style=\"font-family: Courier New;\">[Header]\r\nHeader=ObjectType,Name<\/span><\/pre>\n<p>(without a blank space around the comma).<\/p>\n<ul>\n<li>The ; character cannot be used as part of the identifier&#8217;s name, because in templates, this character means the beginning of a comment. Therefore, the file interpretation will stop in this character, and everything after that is disregarded.<\/li>\n<\/ul>\n<p>For example, this snippet<br \/>\n<span style=\"font-family: Courier New;\"><br \/>\n<\/span><\/p>\n<pre><span style=\"font-family: Courier New;\">[Header]<\/span>\r\n<span style=\"font-family: Courier New;\">Header=ObjectType,Na;me,DocString,Value<\/span><\/pre>\n<p>reads only up until the first half of the <strong>Name<\/strong> variable and disregards everything that comes after that. That means that the actual value for <strong>header<\/strong> variable reads &#8220;ObjectType,Na&#8221;.<\/p>\n<ul>\n<li>Blank rows are ignored when interpreting the file, therefore you can feel free to use them as much as you need them to organize the template visually.<\/li>\n<li>Import\/export operations won&#8217;t fail even if a section or variable is incorrect (exceptions: [Header] section or <strong>header<\/strong> variable for export), because variables assume a default value when not defined. As a result, if the operation&#8217;s execution has failed, we suggest checking the variables names in the template.<\/li>\n<\/ul>\n<h3><b>3.2. Creating a template via E3 Studio&#8217;s Template Manager\u00a0<\/b><\/h3>\n<p>In order to use Elipse E3&#8217;s Template Manager, you will first need to click the <strong>Import\/Export<\/strong> option; once the window opens, then click <strong>Configure<\/strong>. Set up all the options available in the tabs below, and to finish the operation click <strong>OK<\/strong>.<\/p>\n<h4>a) Settings tab<\/h4>\n<p>On this tab, you will set up the valid options for import\/export, such as columns separator, template name, etc.<\/p>\n<p><img loading=\"lazy\" class=\"aligncenter\" src=\"http:\/\/kb.elipse.com.br\/images\/ID109\/Picture1.PNG\" alt=\"\" width=\"397\" height=\"534\" align=\"baseline\" border=\"0\" \/><\/p>\n<h4>b) Import tab<\/h4>\n<p>On this tab, you will set up the valid options for import only, such as what to do with duplicated objects or links.<\/p>\n<p><img loading=\"lazy\" class=\"aligncenter\" src=\"http:\/\/kb.elipse.com.br\/images\/ID109\/Picture2.PNG\" alt=\"\" width=\"397\" height=\"534\" align=\"baseline\" border=\"0\" \/><\/p>\n<h4>c) Filters tab<\/h4>\n<p>On this tab, you will set up the classes you want to import or not, via <strong>Change<\/strong> button.<\/p>\n<p><img loading=\"lazy\" class=\"aligncenter\" src=\"http:\/\/kb.elipse.com.br\/images\/ID109\/Picture3.PNG\" alt=\"\" width=\"397\" height=\"534\" align=\"baseline\" border=\"0\" \/><\/p>\n<h4>d) Identifiers tab<\/h4>\n<p>On this tab, you will set up the identifiers for object classes. Filling it is optional, unless you need to import\/export a class with an identifier instead of the name.<\/p>\n<p><img loading=\"lazy\" class=\"aligncenter\" src=\"http:\/\/kb.elipse.com.br\/images\/ID109\/Picture4.PNG\" alt=\"\" width=\"397\" height=\"534\" align=\"baseline\" border=\"0\" \/><\/p>\n<h4>e) Properties tab<\/h4>\n<p>On this tab, you will list the properties for the import\/export process. In case of <span style=\"text-decoration: underline;\">export<\/span>, the list should be in the correct order, and filling it is mandatory.<\/p>\n<p>In case of <span style=\"text-decoration: underline;\">import<\/span>, the order comes from the configuration in the CSV file and not from the template. Fill out this list only when a column uses an identifier instead of a property. This is also where you can set up two or more properties to be grouped into a single column.<\/p>\n<p><img loading=\"lazy\" class=\"aligncenter\" src=\"http:\/\/kb.elipse.com.br\/images\/ID109\/Picture5.PNG\" alt=\"\" width=\"397\" height=\"534\" align=\"baseline\" border=\"0\" \/><\/p>\n<p>&nbsp;<\/p>\n<h2><u><b><span style=\"font-size: large;\">4. USAGE TIPS<\/span><\/b><\/u><\/h2>\n<h3><b>4.1. Columns separator\u00a0<\/b><\/h3>\n<p>The foundation of a CSV file are its columns. In order to identify them correctly, you will need to make sure the columns separator is the same both for import and for export. To do so, an option is to use the list separator used in Windows, which is at <strong>Start&#8211;Settings&#8211;Control Panel&#8211;Customize Regional Options<\/strong>.<\/p>\n<p><img loading=\"lazy\" class=\"aligncenter\" src=\"http:\/\/kb.elipse.com.br\/images\/ID109\/Picture6.PNG\" alt=\"\" width=\"404\" height=\"478\" align=\"baseline\" border=\"0\" \/><\/p>\n<p>Since this configuration may vary between computers, you will need to make sure the same separator was used not only for generating the CSV file but also for importing it.<\/p>\n<p>Another possibility is to set up the columns separator manually via <strong>Separator<\/strong> variable, in the template&#8217;s [Configuration] section. In this case, the configuration is part of the template, and all you need to do is use the same template for import and export to make sure the separator is properly configured.<\/p>\n<h3><b><br \/>\n4.2. Grouping columns for a more versatile file\u00a0<\/b><\/h3>\n<p>Sometimes, different objects with no properties in common are exported in the same CSV file, which will generate a great number of blank columns. For example, I\/O tags display properties from N1 to N4; I\/O blocks, on the other hand, have B1-B4 properties, but not N1-N4. A CSV file with both I\/O tags and I\/O blocks at first would look like this:<\/p>\n<pre><span style=\"font-family: Courier New;\">ObjectType;Name ;N1;N2;N3;N4;B1;B2;B3;B4<\/span>\r\n<span style=\"font-family: Courier New;\">IOTag ;Tag1 ;1 ;1 ;1 ;1 ; ; ; ;<\/span>\r\n<span style=\"font-family: Courier New;\">IOBlock ;Bloco1; ; ; ; ;1 ;1 ;1 ;1<\/span><\/pre>\n<p>However, you can reduce this file to only six columns if N1-N4 properties are grouped with B1-B4. This is possible because objects either display one type of these properties or the other, never both. But notice this: if grouped properties are common to more than one type of object in the import\/export process, you will have to deal with information loss, because one property&#8217;s value will overwrite the others.<\/p>\n<p>In order to group these properties, you just need to select them, click <strong>Group properties<\/strong>, and then edit the column&#8217;s name.<\/p>\n<p><img loading=\"lazy\" class=\"aligncenter\" src=\"http:\/\/kb.elipse.com.br\/images\/ID109\/Picture7.PNG\" alt=\"\" width=\"444\" height=\"539\" align=\"baseline\" border=\"0\" \/><\/p>\n<p>The template generated in this example will look like the one below:<\/p>\n<pre><span style=\"font-family: Courier New;\">ObjectType;Name ;N1\/B1;N2\/B2;N3\/B3;N4\/B4<\/span>\r\n<span style=\"font-family: Courier New;\">IOTag ;Tag1 ;1 ;1 ;1 ;1<\/span>\r\n<span style=\"font-family: Courier New;\">IOBlock ;Bloco1;1 ;1 ;1 ;1<\/span><\/pre>\n<h3><b>4.3. Importing files generated by Elipse SCADA<\/b><\/h3>\n<p>Elipse SCADA can export its tags, screens, and alarms to E2F files, and Elipse E3 can easily import them with no need for a template. But first, you must notice some things:<\/p>\n<ul>\n<li>I\/O tags or OPC tags must be imported from the same I\/O driver or OPC driver, respectively, with the same name as the Elipse SCADA&#8217;s drivers, so that tag references are imported correctly.<\/li>\n<li>RAM and Demo tags must be imported in Elipse E3 via a data server called &#8220;Data&#8221;; this will guarantee the tag references are correct.<\/li>\n<li>When Elipse SCADA exports tags, it also creates a E2F file with\u00a0 _Alarms suffix, which contains the alarms configuration. After that, in Elipse E3, the alarms are imported from an area previously created inside the AlarmConfig. If the tags were properly imported from Elipse SCADA, they&#8217;ll display their names in blue, which indicates the link is working correctly.<\/li>\n<li>Before importing screens from Elipse SCADA to Elipse E3 for the first time, you will need to register the ActiveX controls of E2Controls at E3 Studio. To do so, access <b>Tools&#8211;Add ActiveX<\/b>, select one of the controls at the E2Controls library, and then click <b>OK<\/b>.<\/li>\n<\/ul>\n<h3><b>4.4. Keeping a basic template for every object\u00a0<\/b><\/h3>\n<p>To facilitate the tool&#8217;s configuration and save time during this procedure, try to keep a pre-designed template for each frequently imported\/exported objects, such as drivers, alarms, screens, etc. These templates can contain, for example, all properties you will need to use as well as the desired objects.<\/p>\n<p>So, whenever you start a new import\/export process, you will only need to select a basic template and click <strong>Configure<\/strong> so that all the settings from this template be loaded. At the option <strong>Save the changes in this template in an INI file<\/strong>, choose a new name for the template, so the basic one won&#8217;t be overwritten, and make only the necessary changes. <b><br \/>\n<\/b><\/p>\n<h3><b>4.5. Importing tag files generated by earlier versions of E3 Studio\u00a0<\/b><\/h3>\n<p>The format of the CSV files generated by exporting older versions of Elipse E3 is also supported by the current tool. The proper template for this operation is available in Elipse E3&#8217;s installation directory, <strong>Templates<\/strong> folder.<\/p>\n<p>In order to set up a new template, follow these procedures:<\/p>\n<p>a. On <strong>Settings<\/strong> tab: firstly, select the Windows list separator as your columns separator; then, disable import\/export root object options; finally, choose a new name for the template.<\/p>\n<p>b. Then, on <strong>Import<\/strong> tab, keep the default configuration.<\/p>\n<p>c. On <strong>Filters<\/strong> tab, select <b>Add only these objects<\/b> and then click <b>Change <\/b>to include the following classes: <i>IOTag<\/i>,\u00a0<i>IOBlock<\/i>, and\u00a0<i>IOBlockElement<\/i>.<\/p>\n<p>d. On <strong>Identifiers<\/strong> tab, click (+) in order to add the <i>IOTag<\/i>,\u00a0<i>IOBlock\u00a0<\/i>and <i>IOBlockElement <\/i>classes, then set up the identifiers <i>PLC Tag<\/i>,\u00a0<i>Block Tag<\/i> and<i>Element<\/i>, respectively.<\/p>\n<p><img loading=\"lazy\" class=\"aligncenter\" src=\"http:\/\/kb.elipse.com.br\/images\/ID109\/Picture8.PNG\" alt=\"\" width=\"397\" height=\"534\" align=\"baseline\" border=\"0\" \/><\/p>\n<p>e. On <strong>Properties<\/strong> tab, set up the properties to be exported by the older version and then associate them to the identifiers used in the CSV file. As for <i>ObjectType <\/i>property, link it to <i>type <\/i>identifier. For the others, follow the instructions below:<\/p>\n<p><img loading=\"lazy\" class=\"aligncenter\" src=\"http:\/\/kb.elipse.com.br\/images\/ID109\/Picture9.PNG\" alt=\"\" width=\"397\" height=\"534\" align=\"baseline\" border=\"0\" \/><\/p>\n<ul>\n<li>First of all, click (+) to add the properties.<\/li>\n<li>Then, select <b>IOTag\u00a0<\/b>class and add <em>Name<\/em>, <em>DocString<\/em>, <em>N1<\/em>, <em>N2<\/em>, <em>N3<\/em>, <em>N4<\/em>, <em>Scan<\/em>, <em>AllowRead<\/em>, <em>AllowWrite<\/em>, <em>EnableScaling<\/em>, <em>DeviceLow<\/em>, <em>DeviceHigh<\/em>, <em>EULow<\/em>, <em>EUHigh<\/em>, <em>ParamDevice<\/em> and <em>ParamItem<\/em> properties.<\/li>\n<li>After that, select <b>IOBlock <\/b>class and add <i>B1<\/i>,\u00a0<i>B2<\/i>,\u00a0<i>B3<\/i>,\u00a0<i>B4<\/i> and <i>Size <\/i>properties<i>.<\/i><\/li>\n<li>Select\u00a0 <b>IOBlockElement <\/b>class and add <i>Index <\/i>property<i>.<\/i><\/li>\n<li>Select\u00a0 <i>N1\u00a0<\/i>to <i>N4\u00a0<\/i>and <i>B1\u00a0<\/i>to <i>B4 <\/i>properties in pairs and click\u00a0<b>Group properties<\/b>. Then, change the name of the columns\u00a0 (<b>N1\/B1<\/b>,\u00a0<b>N2\/B2<\/b>,\u00a0<b>N3\/B3<\/b> and <b>N4\/B4<\/b>).<\/li>\n<li>Finally, change the name of the columns for the following properties: <i>DocString\u00a0<\/i>= Description;\u00a0<i>Scan\u00a0<\/i>= ScanTime;\u00a0<i>AdviseType\u00a0<\/i>= Advise;\u00a0<i>EnableScaling\u00a0<\/i>= Scaling;\u00a0<i>EUHigh\u00a0<\/i>= High2.<\/li>\n<\/ul>\n<p>f. Click <strong>OK<\/strong>.<\/p>\n<pre><span style=\"font-family: Courier New;\">[HEADER]<\/span>\r\n<span style=\"font-family: Courier New;\">Header=Type,Name,Description,N1\/B1,N2\/B2,N3\/B3,N4\/B4,ScanTime,AllowRead,\r\nAllowWrite,Advise,Scaling,DeviceLow,DeviceHigh,EULow,EUHigh,EU,Size,\r\nIndex,ParamDevice,ParamItem Types=Element,Block Tag,PLC Tag<\/span><span style=\"font-family: Courier New;\">[TYPES]<\/span><span style=\"font-family: Courier New;\">Element=IOBlockElement<\/span>\r\n<span style=\"font-family: Courier New;\">Block Tag=IOBlock<\/span>\r\n<span style=\"font-family: Courier New;\">PLC Tag=IOTag<\/span><span style=\"font-family: Courier New;\">[COLUMNS]<\/span>\r\n<span style=\"font-family: Courier New;\">N1\/B1=N1,B1<\/span>\r\n<span style=\"font-family: Courier New;\">N2\/B2=N2,B2<\/span>\r\n<span style=\"font-family: Courier New;\">N3\/B3=N3,B3<\/span>\r\n<span style=\"font-family: Courier New;\">N4\/B4=N4,B4<\/span>\r\n<span style=\"font-family: Courier New;\">Scaling=EnableScaling<\/span>\r\n<span style=\"font-family: Courier New;\">ScanTime=Scan<\/span>\r\n<span style=\"font-family: Courier New;\">Type=ObjectType<\/span>\r\n<span style=\"font-family: Courier New;\">Advise=AdviseType<\/span>\r\n<span style=\"font-family: Courier New;\">Description=DocString<\/span><span style=\"font-family: Courier New;\">[CONFIGURATION]<\/span>\r\n<span style=\"font-family: Courier New;\">Root=FALSE<\/span>\r\n<span style=\"font-family: Courier New;\">Link=FALSE<\/span>\r\n<span style=\"font-family: Courier New;\">Collection=FALSE<\/span>\r\n<span style=\"font-family: Courier New;\">ObjectDuplicated=AskAlways<\/span>\r\n<span style=\"font-family: Courier New;\">BindDuplicated=AskAlways<\/span><span style=\"font-family: Courier New;\">[FILTER]<\/span>\r\n<span style=\"font-family: Courier New;\">Include=IOTag,IOBlock,IOBlockElement<\/span><\/pre>\n<h3><b>4.6. Editing object types in four easy steps\u00a0<\/b><\/h3>\n<p>With Elipse E3&#8217;s new import\/export tool, you can change object types without compromising already configured properties. This can be done in four easy steps:<\/p>\n<p><img loading=\"lazy\" class=\"aligncenter\" src=\"http:\/\/kb.elipse.com.br\/images\/ID109\/Picture10.PNG\" alt=\"\" width=\"550\" height=\"425\" align=\"baseline\" border=\"0\" \/><\/p>\n<p>a. Firstly, <strong>e<\/strong><b>xport <\/b>the objects whose types you intend to change, thus creating a template with all these properties. In the example, we will export all children objects from InitialScreen. Thus, in the templates configuration, we included all properties from <em>DrawRect<\/em> class, and created an identifier on <strong>Identifiers<\/strong> tab at the Template Manager.<\/p>\n<p>b. After that, <strong>change<\/strong> the object type in the export template. In the example,\u00a0<em>DrawRect<\/em> was replaced with <em>DrawCircle<\/em> directly at the variable value. Save the template.<\/p>\n<p>c. Then, <strong>delete<\/strong> old objects at Elipse E3. In the example, we removed the four rectangles on InitialScreen.<\/p>\n<p>d. Finally, <strong>i<\/strong><b>mport <\/b>the objects in the CSV file that were generated at <b>a<\/b> via a template changed at <b>b<\/b>. In the example, we created four new circles that keep the properties set up for the rectangles, such as color, position, size, etc.<\/p>\n<p><img loading=\"lazy\" class=\"aligncenter\" src=\"http:\/\/kb.elipse.com.br\/images\/ID109\/Picture11.PNG\" alt=\"\" width=\"550\" height=\"425\" align=\"baseline\" border=\"0\" \/><\/p>\n<p>However, this procedure is only helpful in cases when the objects being transformed share a great number of properties; otherwise, this alternative is not the most indicated.<\/p>\n<p>A good example of when to use this feature is if you lose a library with several XControls from a Screen. If you know the meaning of the properties set up for the XControl, you can not only create a new library but also redefine the ElipseX and, following this procedure, replace the old ElipseX with new ones on the Screen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>1. INTRODUCTION The import\/export tool in E3 Studio allows you to record CSV files containing information about the objects in Elipse E3, and later use it to create new objects&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0},"categories":[750],"tags":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v19.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Creating templates for the import\/export tool in E3 Studio.<\/title>\n<meta name=\"description\" content=\"This article shows how to create templates for the import\/export tool in E3 Studio, which is Elipse E3&#039;s development environment.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kb.elipse.com.br\/en\/creating-templates-for-the-import-export-tool-in-e3-studio\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Creating templates for the import\/export tool in E3 Studio.\" \/>\n<meta property=\"og:description\" content=\"This article shows how to create templates for the import\/export tool in E3 Studio, which is Elipse E3&#039;s development environment.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kb.elipse.com.br\/en\/creating-templates-for-the-import-export-tool-in-e3-studio\/\" \/>\n<meta property=\"og:site_name\" content=\"Elipse Knowledgebase\" \/>\n<meta property=\"article:publisher\" content=\"http:\/\/www.facebook.com\/elipsesoftware\" \/>\n<meta property=\"article:published_time\" content=\"2019-03-25T20:30:31+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-09-02T16:13:30+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/kb.elipse.com.br\/images\/ID109\/Picture1.PNG\" \/>\n<meta name=\"author\" content=\"Elipse Software\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Elipse Software\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"32 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kb.elipse.com.br\/en\/creating-templates-for-the-import-export-tool-in-e3-studio\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kb.elipse.com.br\/en\/creating-templates-for-the-import-export-tool-in-e3-studio\/\"},\"author\":{\"name\":\"Elipse Software\",\"@id\":\"https:\/\/kb.elipse.com.br\/#\/schema\/person\/def69ea453ea60b250497b89225a9f87\"},\"headline\":\"Creating templates for the import\/export tool in E3 Studio.\",\"datePublished\":\"2019-03-25T20:30:31+00:00\",\"dateModified\":\"2020-09-02T16:13:30+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kb.elipse.com.br\/en\/creating-templates-for-the-import-export-tool-in-e3-studio\/\"},\"wordCount\":5797,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kb.elipse.com.br\/#organization\"},\"articleSection\":[\"Import \/ Export\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kb.elipse.com.br\/en\/creating-templates-for-the-import-export-tool-in-e3-studio\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kb.elipse.com.br\/en\/creating-templates-for-the-import-export-tool-in-e3-studio\/\",\"url\":\"https:\/\/kb.elipse.com.br\/en\/creating-templates-for-the-import-export-tool-in-e3-studio\/\",\"name\":\"Creating templates for the import\/export tool in E3 Studio.\",\"isPartOf\":{\"@id\":\"https:\/\/kb.elipse.com.br\/#website\"},\"datePublished\":\"2019-03-25T20:30:31+00:00\",\"dateModified\":\"2020-09-02T16:13:30+00:00\",\"description\":\"This article shows how to create templates for the import\/export tool in E3 Studio, which is Elipse E3's development environment.\",\"breadcrumb\":{\"@id\":\"https:\/\/kb.elipse.com.br\/en\/creating-templates-for-the-import-export-tool-in-e3-studio\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kb.elipse.com.br\/en\/creating-templates-for-the-import-export-tool-in-e3-studio\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kb.elipse.com.br\/en\/creating-templates-for-the-import-export-tool-in-e3-studio\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\/\/kb.elipse.com.br\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Creating templates for the import\/export tool in E3 Studio.\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kb.elipse.com.br\/#website\",\"url\":\"https:\/\/kb.elipse.com.br\/\",\"name\":\"Elipse Knowledgebase\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/kb.elipse.com.br\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kb.elipse.com.br\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kb.elipse.com.br\/#organization\",\"name\":\"Elipse Software\",\"url\":\"https:\/\/kb.elipse.com.br\/\",\"sameAs\":[\"http:\/\/www.facebook.com\/elipsesoftware\"],\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/kb.elipse.com.br\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kb.elipse.com.br\/wp-content\/uploads\/2019\/05\/schererelipse-com-br\/logoElipse.png\",\"contentUrl\":\"https:\/\/kb.elipse.com.br\/wp-content\/uploads\/2019\/05\/schererelipse-com-br\/logoElipse.png\",\"width\":161,\"height\":58,\"caption\":\"Elipse Software\"},\"image\":{\"@id\":\"https:\/\/kb.elipse.com.br\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/kb.elipse.com.br\/#\/schema\/person\/def69ea453ea60b250497b89225a9f87\",\"name\":\"Elipse Software\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/kb.elipse.com.br\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/ff1f7ec38f4687b06f6851d97b3cd2d0?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/ff1f7ec38f4687b06f6851d97b3cd2d0?s=96&d=mm&r=g\",\"caption\":\"Elipse Software\"},\"url\":\"https:\/\/kb.elipse.com.br\/en\/author\/webmasterelipse-com-br\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Creating templates for the import\/export tool in E3 Studio.","description":"This article shows how to create templates for the import\/export tool in E3 Studio, which is Elipse E3's development environment.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kb.elipse.com.br\/en\/creating-templates-for-the-import-export-tool-in-e3-studio\/","og_locale":"en_US","og_type":"article","og_title":"Creating templates for the import\/export tool in E3 Studio.","og_description":"This article shows how to create templates for the import\/export tool in E3 Studio, which is Elipse E3's development environment.","og_url":"https:\/\/kb.elipse.com.br\/en\/creating-templates-for-the-import-export-tool-in-e3-studio\/","og_site_name":"Elipse Knowledgebase","article_publisher":"http:\/\/www.facebook.com\/elipsesoftware","article_published_time":"2019-03-25T20:30:31+00:00","article_modified_time":"2020-09-02T16:13:30+00:00","og_image":[{"url":"http:\/\/kb.elipse.com.br\/images\/ID109\/Picture1.PNG"}],"author":"Elipse Software","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Elipse Software","Est. reading time":"32 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kb.elipse.com.br\/en\/creating-templates-for-the-import-export-tool-in-e3-studio\/#article","isPartOf":{"@id":"https:\/\/kb.elipse.com.br\/en\/creating-templates-for-the-import-export-tool-in-e3-studio\/"},"author":{"name":"Elipse Software","@id":"https:\/\/kb.elipse.com.br\/#\/schema\/person\/def69ea453ea60b250497b89225a9f87"},"headline":"Creating templates for the import\/export tool in E3 Studio.","datePublished":"2019-03-25T20:30:31+00:00","dateModified":"2020-09-02T16:13:30+00:00","mainEntityOfPage":{"@id":"https:\/\/kb.elipse.com.br\/en\/creating-templates-for-the-import-export-tool-in-e3-studio\/"},"wordCount":5797,"commentCount":0,"publisher":{"@id":"https:\/\/kb.elipse.com.br\/#organization"},"articleSection":["Import \/ Export"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kb.elipse.com.br\/en\/creating-templates-for-the-import-export-tool-in-e3-studio\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kb.elipse.com.br\/en\/creating-templates-for-the-import-export-tool-in-e3-studio\/","url":"https:\/\/kb.elipse.com.br\/en\/creating-templates-for-the-import-export-tool-in-e3-studio\/","name":"Creating templates for the import\/export tool in E3 Studio.","isPartOf":{"@id":"https:\/\/kb.elipse.com.br\/#website"},"datePublished":"2019-03-25T20:30:31+00:00","dateModified":"2020-09-02T16:13:30+00:00","description":"This article shows how to create templates for the import\/export tool in E3 Studio, which is Elipse E3's development environment.","breadcrumb":{"@id":"https:\/\/kb.elipse.com.br\/en\/creating-templates-for-the-import-export-tool-in-e3-studio\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kb.elipse.com.br\/en\/creating-templates-for-the-import-export-tool-in-e3-studio\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/kb.elipse.com.br\/en\/creating-templates-for-the-import-export-tool-in-e3-studio\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/kb.elipse.com.br\/en\/"},{"@type":"ListItem","position":2,"name":"Creating templates for the import\/export tool in E3 Studio."}]},{"@type":"WebSite","@id":"https:\/\/kb.elipse.com.br\/#website","url":"https:\/\/kb.elipse.com.br\/","name":"Elipse Knowledgebase","description":"","publisher":{"@id":"https:\/\/kb.elipse.com.br\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kb.elipse.com.br\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/kb.elipse.com.br\/#organization","name":"Elipse Software","url":"https:\/\/kb.elipse.com.br\/","sameAs":["http:\/\/www.facebook.com\/elipsesoftware"],"logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/kb.elipse.com.br\/#\/schema\/logo\/image\/","url":"https:\/\/kb.elipse.com.br\/wp-content\/uploads\/2019\/05\/schererelipse-com-br\/logoElipse.png","contentUrl":"https:\/\/kb.elipse.com.br\/wp-content\/uploads\/2019\/05\/schererelipse-com-br\/logoElipse.png","width":161,"height":58,"caption":"Elipse Software"},"image":{"@id":"https:\/\/kb.elipse.com.br\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/kb.elipse.com.br\/#\/schema\/person\/def69ea453ea60b250497b89225a9f87","name":"Elipse Software","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/kb.elipse.com.br\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/ff1f7ec38f4687b06f6851d97b3cd2d0?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ff1f7ec38f4687b06f6851d97b3cd2d0?s=96&d=mm&r=g","caption":"Elipse Software"},"url":"https:\/\/kb.elipse.com.br\/en\/author\/webmasterelipse-com-br\/"}]}},"_links":{"self":[{"href":"https:\/\/kb.elipse.com.br\/en\/wp-json\/wp\/v2\/posts\/370"}],"collection":[{"href":"https:\/\/kb.elipse.com.br\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kb.elipse.com.br\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kb.elipse.com.br\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kb.elipse.com.br\/en\/wp-json\/wp\/v2\/comments?post=370"}],"version-history":[{"count":23,"href":"https:\/\/kb.elipse.com.br\/en\/wp-json\/wp\/v2\/posts\/370\/revisions"}],"predecessor-version":[{"id":11479,"href":"https:\/\/kb.elipse.com.br\/en\/wp-json\/wp\/v2\/posts\/370\/revisions\/11479"}],"wp:attachment":[{"href":"https:\/\/kb.elipse.com.br\/en\/wp-json\/wp\/v2\/media?parent=370"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kb.elipse.com.br\/en\/wp-json\/wp\/v2\/categories?post=370"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kb.elipse.com.br\/en\/wp-json\/wp\/v2\/tags?post=370"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}