Description of SCIA Engineer XML format

The data exchange format SCIA Engineer XML complies with the specification that is available on the server of W3C consortium http://www.w3.org/.

For better understanding of the following text we recommend studying the basic properties of XML language. Czech user may find it interesting to study thee course at http://www.kosek.cz/clanky/swn-xml/syntaxe.html.

Text format XML belongs to markup languages. Important parts of the document are marked by special marks. In XML terminology the individual marked parts of the document are called elements. The elements may be embedded one into another (we may say structured sub-levelled) and thus maintain the structure of the information stored in the document. Each element can hold other embedded data called attributes.

ESA PF format is attribute-oriented, which means that all data are stored in attributes. Elements are used only to structure the data.

Two files with different contents and different syntax are created during XML export.

First one has extension XML and contains the project data.

Second one uses extension DEF and this is the definition file. This file describes the structure of the data file and its present is necessary for reloading of data. One can say that this file tells ESA how to read the information stored in the data file.

ATTENTION: All values in XML file are given in basic SI units.

Structure of data

The structure of data in XML file in fact reflects the structure of database of the SCIA Engineer program.

Project

All data are covered by one object named ‘project’.

In data file this is the element marked by tags: <project> …  </project>

In the definition file this is the element marked by tags: <def_project> …  </def_project>

It contains:

- one element named <def> which holds the information about the definition file

example: <def uri="myoutput.xml.def" />

- any number of data groups marked container

Container

The container is a set of objects of the same type.

In data file this is the element marked by tags: <container id=“{??????}“> …  </container>

or by the old notation: <container_??????> …  </container_??????>

Both variants are equivalent.

In the definition file this is the element marked by tags: <def_container> …  </def_container>

The container has an important attribute id that gives the identification in SCIA Engineer database.

Example: container of nodes in the data file

<container id=“{39A7F468-A0D4-4DFF-8E5C-5843E1807D13}“ >

or

<container_39A7F468-A0D4-4DFF-8E5C-5843E1807D13 >

in the definition file

<def_container id="{39A7F468-A0D4-4DFF-8E5C-5843E1807D13}">

Table

The previous chapter describes the way the XML format is created. One of the tools described was Table composer showing all properties or values that the object can display. The user could create his own format from these properties. And it is just the table that is the image of such created output format. In its definition part that table specifies which properties and in what order will be included into the XML file or – respectively – in what order they will be read.

Any number of such tables can be prepared for one container and, therefore, they must be marked somehow.

In data file this is the element marked by tags: <table id=“??????“> …  </table>

or by the old notation: <table_??????> …  </table_??????>

Both variants are equivalent.

In the definition file this is the element marked by tags: <def_table> …  </def_table>

Plus there is one specialty here.

If the identification of a table in the data file is set to “default”, then the first definition of the table for the given container is used for reading. It simplifies the notation because in 99 cases out of 100 just one table is defined for the container.

Object

An object is the basic element in SCIA Engineer database. For example, it is material, cross-section, node, beam, plate, etc.

It is identified by a name or by an internal database identificator. In XML the identification by name if of highest priority. Id is not obligatory and is taken into account only if the name has not been defined or if the name is invalid.

In appears only in data file and it is the element marked by tags: <obj> …  </obj>

Its attributes are:

A few notes with regards to name:

The name is a text and as a rule there should not be more objects of the same name in one container. If this happens and the name is used in reference, the first object of that name is used. The length of the name is not limited. It is however advisable – for the sake of understandability – not to use names longer than 8 characters.

Properties

Properties are defined in the definition file. It happens during the definition of the table.

These elements are marked by tags: <def_property> …  </def_property>

Attributes:

x – specifies the order in the table, starts with zero and in the data file the corresponding property is marked by tag:  <px> … </px>

Example: property with index 28    <p28> …. /<p28>

name – name

type – variable type

id – identification of the property in the database, used for write operation

Example: definition of text property at position zero

<def_property x="0" name="Project" type="string" id="{EDA4B5A7-8A80-11D4-A414-000000000000}" />

Variable types

"string"

text value, in data file written in attribute „v“ 

Example: <p0 v="Standard" />

"bool"

Boolean value YES/NO , attribute „v“  can be 0 or 1

Example: <p3 v="0" />

"enum"

enumeration type, can only be of value defined in the definition file in the element marked by tag: <def_enum> … </def_enum>

Example: enum declaration in definition file

<def_property x="1" name="Shape" type="enum" id="{4B767590-6764-41E8-AD5B-48216A3AA4CD}">

<def_enum size="5">

<it_enum v="0" t="Line" />

<it_enum v="1" t="Arc" />

<it_enum v="2" t="Parabolic arc" />

<it_enum v="3" t="Bezier curve" />

<it_enum v="4" t="Spline" />

</def_enum>

</def_property>

Example: property of enum type in the data file

<p1 v="1" t="Arc" />

The value in attribute „v“  is obligatory. Attribute „t“  is optional comment.

"integer"

integer value, the value is in attribute „v“

"param"

parametric value. It is in fact a value that can be parameterised. SCIA Engineer database contains a special container storing parameters and if a property of “param” type refers to one of these objects, then it reads and takes its value. If it refers to none, then it has normal constant value defined in attribute „v“. The value in attribute  „n“ is obligatory and defines the internal identification of the object in the database.

Example: a value referring to parameter „Xx“, the value of the parameter is 10, in this case it is informative information

<p1 v="10" i="5" n="Xx" />

example: the definition of property of reference type, it will refer to an object in the container of nodes

<def_property x="2" name="Beg. node" type="ref" id="{771CB578-EB31-4374-93CA-632E3A6BF147}">

<def_ref id="{39A7F468-A0D4-4DFF-8E5C-5843E1807D13}" progid="EP_DSG_Elements.EP_StructNode.1" />

</def_property>

example: property of reference type in data file, refers to the node named „N3“

<p2 i="3" n="N3" />

example: <p10  v1=”11.345” v2=”1.435e5”>

The internal table is defined in the definition file similarly to the definition of a standard table. An example will explain it best.

Example: a table with five values

<def_property x="3" name="Lines" type="table" id="{8FB50711-37F9-4FCA-8135-E5EE1D5CCA8F}">

<def_subtable size="5" type="vertical">

<def_property x="0" name="Name" type="string" id="{AABC5619-C776-41DC-83FE-26DAF0F4A948}" />

<def_property x="1" name="Material" type="ref" id="{B231C204-6CB8-4165-A9F2-ECFC727F1A8A}">

<def_ref id="{77705284-EEB9-11D4-B450-00104BC3B531}" progid="EP_Material.EP_Material.1" />

</def_property>

<def_property x="2" name="Id" type="integer" id="{997A99EA-61DB-455E-A415-13483EA42D1C}" />

<def_property x="3" name="Length" type="param" id="{948BDEE1-AF48-4B0F-892D-89A701325C9B}" />

<def_property x="4" name="Rolled section" type="string" id="{4C40D82E-B88B-4C86-93D1-51D93D836361}" />

</def_subtable>

</def_property>

The syntax in the data file is a bit more complex. Every line is enclosed in the element that is tagged <row> … </row>

This element has a single compulsory parameter „id“ that identifies the line of the table.

Example: two lines of a table defined in the previous example

<p3 t="My beams">

<row id="0">

<p0 v="L1" />

<p1 i="10" n="S 235" />

<p2 v=“111“ />

<p3 v=“332.1“ />

<p4 v=“HEB300“ />

</row>

<row id="1">

<p0 v="L2" />

<p1 i="11" n="B15" />

<p2 v=“112“ />

<p3 v=“2.8“ />

<p4 v="U160" />

</row>

</p3>

SCIA web

Downloads

SCIA is part of the Nemetschek group