Show last authors
1 (% class="box floatinginfobox" %)
2 (((
3 Contents
4
5 {{toc depth="3"/}}
6 )))
7
8 (% style="text-align: justify;" %)
9 The StruXML file is used to store object data such as geometry and loads of the model. StruXML is also the format used to exchange models with Revit and Tekla. Any FEM-Design 3D Structure model can be saved as StruXML and any StruXML file can easily be opened in a text editor where it can be inspected and modified.
10
11
12 (% style="text-align: justify;" %)
13 = Save existing model as StruXML =
14
15 An existing FEM-Design model can easily be saved as a StruXML file by going to File>Save as... and selecting StruSoft common structure XML file (*.struxml) in the Save as type dialog.
16
17
18 [[image:image-20200210154817-1.png]]
19
20
21 (% style="text-align: justify;" %)
22 = Model as StruXML =
23
24 As we save a model as StruXML we can start to disect the model by reading the code.
25
26 == Model ==
27
28 The StruXML code below describes a simply supported beam with a length of 5 meters, a rectangular cross-section 200x500, and a concrete C30/37 material:
29
30 {{code language="xml"}}
31 <database struxml_version="01.00.000" source_software="FEM-Design 19.00.001" start_time="1970-01-01T00:00:00.000" end_time="2020-02-10T14:16:29.000" guid="e211356e-5f99-4a37-a005-d6c326834e45" convertid="00000000-0000-0000-0000-000000000000" standard="EC" country="S" xmlns="urn:strusoft">
32 <entities>
33 <bar name="B.1" type="beam" guid="72f97ae8-dae3-4106-a86d-c6e9485c0354" last_change="2020-02-10T14:16:29.000" action="added">
34 <bar_part guid="3641e177-f9b7-41ec-8eea-62d274c21f64" last_change="2020-02-10T14:16:29.000" action="added" name="B.1.1" complex_material="6e4dcf1d-5801-45cc-99ae-c661ec27ce72" complex_section="2dc61ff1-429f-43c2-ba23-90968f8e933e" ecc_calc="true">
35 <curve type="line">
36 <point x="0" y="0" z="0"></point>
37 <point x="5" y="0" z="0"></point>
38 </curve>
39 <local-y x="0" y="1" z="0"></local-y>
40 <connectivity m_x="true" m_y="true" m_z="true" r_x="true" r_y="true" r_z="true"></connectivity>
41 <connectivity m_x="true" m_y="true" m_z="true" r_x="true" r_y="true" r_z="true"></connectivity>
42 <eccentricity use_default_physical_alignment="true">
43 <analytical x="0" y="0" z="0"></analytical>
44 <analytical x="0" y="0" z="0"></analytical>
45 <physical x="0" y="0" z="-0.25"></physical>
46 <physical x="0" y="0" z="-0.25"></physical>
47 </eccentricity>
48 <end></end>
49 </bar_part>
50 <end></end>
51 </bar>
52 <supports>
53 <point_support guid="fba5197e-6d85-4b07-8a6e-053bb0f4f6f0" last_change="2020-02-10T14:08:41.000" action="added" name="S.1">
54 <group>
55 <local_x x="1" y="0" z="0"></local_x>
56 <local_y x="0" y="1" z="0"></local_y>
57 <rigidity>
58 <motions x_neg="10000000000" x_pos="10000000000" y_neg="10000000000" y_pos="10000000000" z_neg="10000000000" z_pos="10000000000"></motions>
59 <rotations x_neg="0" x_pos="0" y_neg="0" y_pos="0" z_neg="0" z_pos="0"></rotations>
60 </rigidity>
61 </group>
62 <position x="0" y="0" z="0"></position>
63 </point_support>
64 <point_support guid="4adba974-d671-4d2f-94db-b4305e76b830" last_change="2020-02-10T14:08:48.000" action="added" name="S.2">
65 <group>
66 <local_x x="1" y="0" z="0"></local_x>
67 <local_y x="0" y="1" z="0"></local_y>
68 <rigidity>
69 <motions x_neg="0" x_pos="0" y_neg="10000000000" y_pos="10000000000" z_neg="10000000000" z_pos="10000000000"></motions>
70 <rotations x_neg="0" x_pos="0" y_neg="0" y_pos="0" z_neg="0" z_pos="0"></rotations>
71 </rigidity>
72 </group>
73 <position x="5" y="0" z="0"></position>
74 </point_support>
75 </supports>
76 </entities>
77 <sections>
78 <section guid="90bb4365-64f2-4293-bcef-d389d5b0ff96" last_change="1970-01-01T00:00:00.000" action="added" name="Concrete sections, Rectangle, 200x500" type="custom" fd-mat="3" fd_name_code="Concrete sections" fd_name_type="Rectangle" fd_name_size="200x500">
79 <region_group>
80 <region>
81 <contour>
82 <edge type="line">
83 <point x="-0.1" y="-0.25" z="0"></point>
84 <point x="0.1" y="-0.25" z="0"></point>
85 <normal x="0" y="1" z="0"></normal>
86 </edge>
87 <edge type="line">
88 <point x="0.1" y="-0.25" z="0"></point>
89 <point x="0.1" y="0.25" z="0"></point>
90 <normal x="-1" y="0" z="0"></normal>
91 </edge>
92 <edge type="line">
93 <point x="0.1" y="0.25" z="0"></point>
94 <point x="-0.1" y="0.25" z="0"></point>
95 <normal x="0" y="-1" z="0"></normal>
96 </edge>
97 <edge type="line">
98 <point x="-0.1" y="0.25" z="0"></point>
99 <point x="-0.1" y="-0.25" z="0"></point>
100 <normal x="1" y="0" z="0"></normal>
101 </edge>
102 </contour>
103 </region>
104 </region_group>
105 <end></end>
106 </section>
107 <complex_section guid="2dc61ff1-429f-43c2-ba23-90968f8e933e" last_change="1970-01-01T00:00:00.000" action="added">
108 <section pos="0" guid="90bb4365-64f2-4293-bcef-d389d5b0ff96">
109 <ecc x="0" y="0" z="0"></ecc>
110 <end></end>
111 </section>
112 <section pos="1" guid="90bb4365-64f2-4293-bcef-d389d5b0ff96">
113 <ecc x="0" y="0" z="0"></ecc>
114 <end></end>
115 </section>
116 </complex_section>
117 </sections>
118 <materials>
119 <material guid="6e4dcf1d-5801-45cc-99ae-c661ec27ce72" last_change="2013-07-19T10:00:42.000" action="added" standard="EC" country="S" name="C30/37">
120 <concrete mass="2.54842" E_0="33000000" E_1="33000000" E_2="33000000" nu_0="0.2" nu_1="0.2" nu_2="0.2" alfa_0="0.00001" alfa_1="0.00001" alfa_2="0.00001" G_0="13750000" G_1="13750000" G_2="13750000" Fck="30" Fck_cube="37" Fctk="2" Fctm="2.9" Ecm="33000" gammaC_0="1.5" gammaC_1="1.2" gammaCE="1.2" gammaS_0="1.15" gammaS_1="1" alfaCc="1" alfaCt="1" Fcd_0="20" Fcd_1="25" Fctd_0="1.33333333333333" Fctd_1="1.66666666666667" Ecd_0="22000" Ecd_1="27500" Epsc2="0.002" Epscu2="0.0035" Epsc3="0.00175" Epscu3="0.0035" environment="0" creep="0" shrinkage="0" nu="0.2" alfa="0.00001"></concrete>
121 </material>
122 </materials>
123 <end></end>
124 </database>
125 {{/code}}
126
127 (% style="text-align: justify;" %)
128 == Database ==
129
130 (% style="text-align: justify;" %)
131 The StruXML model contains a document element (root element) called database. This element contains all other elements that define the model. Elements that are contained within another element are usually called child elements or children.
132
133 {{code language="xml"}}
134 <database struxml_version="01.00.000" source_software="FEM-Design 19.00.001" start_time="1970-01-01T00:00:00.000" end_time="2020-02-10T14:16:29.000" guid="e211356e-5f99-4a37-a005-d6c326834e45" convertid="00000000-0000-0000-0000-000000000000" standard="EC" country="S" xmlns="urn:strusoft">
135 <entities>
136 <!-- This child element contains the bar and the two supports -->
137 </entities>
138 <sections>
139 <!-- This child element contains the section of the bar -->
140 </sections>
141 <materials>
142 <!-- This child element contains the material of the bar -->
143 </materials>
144 </database>
145 {{/code}}
146
147 == Bar ==
148
149 The first element in the StruXML model is a bar named B.1. This element is contained within the entities element and is therefore a child of the parent element entities. This bar element contains a another element called bar_part which contains most of the information about the bar such as material, section, geometry (curve) and much more. The material and section are just references to other elements within the StruXML code. These references are guid references. A guid is what is called a globally unique identifier.
150
151 {{code language="xml"}}
152 <bar name="B.1" type="beam" guid="72f97ae8-dae3-4106-a86d-c6e9485c0354" last_change="2020-02-10T14:16:29.000" action="added">
153 <bar_part guid="3641e177-f9b7-41ec-8eea-62d274c21f64" last_change="2020-02-10T14:16:29.000" action="added" name="B.1.1" complex_material="6e4dcf1d-5801-45cc-99ae-c661ec27ce72" complex_section="2dc61ff1-429f-43c2-ba23-90968f8e933e" ecc_calc="true">
154 <curve type="line">
155 <point x="0" y="0" z="0"></point>
156 <point x="5" y="0" z="0"></point>
157 </curve>
158 <local-y x="0" y="1" z="0"></local-y>
159 <connectivity m_x="true" m_y="true" m_z="true" r_x="true" r_y="true" r_z="true"></connectivity>
160 <connectivity m_x="true" m_y="true" m_z="true" r_x="true" r_y="true" r_z="true"></connectivity>
161 <eccentricity use_default_physical_alignment="true">
162 <analytical x="0" y="0" z="0"></analytical>
163 <analytical x="0" y="0" z="0"></analytical>
164 <physical x="0" y="0" z="-0.25"></physical>
165 <physical x="0" y="0" z="-0.25"></physical>
166 </eccentricity>
167 <end></end>
168 </bar_part>
169 <end></end>
170 </bar>
171 {{/code}}
172
173 == Point supports ==
174
175 After the bar element we can find an element called supports that contain the point supports of the model. These point supports are named S.1 and S.2. We can read out where they are placed by looking at the position element. Moreover, we can inspect the motion and rotation springs of the point supports. It is possible to identify that S.2 has the motion spring in positive and negative x-direction set to 0.
176
177 {{code language="xml"}}
178 <supports>
179 <point_support guid="fba5197e-6d85-4b07-8a6e-053bb0f4f6f0" last_change="2020-02-10T14:08:41.000" action="added" name="S.1">
180 <group>
181 <local_x x="1" y="0" z="0"></local_x>
182 <local_y x="0" y="1" z="0"></local_y>
183 <rigidity>
184 <motions x_neg="10000000000" x_pos="10000000000" y_neg="10000000000" y_pos="10000000000" z_neg="10000000000" z_pos="10000000000"></motions>
185 <rotations x_neg="0" x_pos="0" y_neg="0" y_pos="0" z_neg="0" z_pos="0"></rotations>
186 </rigidity>
187 </group>
188 <position x="0" y="0" z="0"></position>
189 </point_support>
190 <point_support guid="4adba974-d671-4d2f-94db-b4305e76b830" last_change="2020-02-10T14:08:48.000" action="added" name="S.2">
191 <group>
192 <local_x x="1" y="0" z="0"></local_x>
193 <local_y x="0" y="1" z="0"></local_y>
194 <rigidity>
195 <motions x_neg="0" x_pos="0" y_neg="10000000000" y_pos="10000000000" z_neg="10000000000" z_pos="10000000000"></motions>
196 <rotations x_neg="0" x_pos="0" y_neg="0" y_pos="0" z_neg="0" z_pos="0"></rotations>
197 </rigidity>
198 </group>
199 <position x="5" y="0" z="0"></position>
200 </point_support>
201 </supports>
202 {{/code}}
203
204 == Sections ==
205
206 The sections element contains all referenced sections of a model. In the StruXML model we can find the complex_section that is referenced by the bar_part as well as the base section which is referenced by this complex_section. A complex_section is simply a definition of the start and end section of a bar. In this specific case the complex_section references the base section two times as the bar star and end section is the same. The base section referenced is named  Concrete sections, Rectangle, 200x500.
207
208 {{code language="xml"}}
209 <sections>
210 <section guid="90bb4365-64f2-4293-bcef-d389d5b0ff96" last_change="1970-01-01T00:00:00.000" action="added" name="Concrete sections, Rectangle, 200x500" type="custom" fd-mat="3" fd_name_code="Concrete sections" fd_name_type="Rectangle" fd_name_size="200x500">
211 <region_group>
212 <region>
213 <contour>
214 <edge type="line">
215 <point x="-0.1" y="-0.25" z="0"></point>
216 <point x="0.1" y="-0.25" z="0"></point>
217 <normal x="0" y="1" z="0"></normal>
218 </edge>
219 <edge type="line">
220 <point x="0.1" y="-0.25" z="0"></point>
221 <point x="0.1" y="0.25" z="0"></point>
222 <normal x="-1" y="0" z="0"></normal>
223 </edge>
224 <edge type="line">
225 <point x="0.1" y="0.25" z="0"></point>
226 <point x="-0.1" y="0.25" z="0"></point>
227 <normal x="0" y="-1" z="0"></normal>
228 </edge>
229 <edge type="line">
230 <point x="-0.1" y="0.25" z="0"></point>
231 <point x="-0.1" y="-0.25" z="0"></point>
232 <normal x="1" y="0" z="0"></normal>
233 </edge>
234 </contour>
235 </region>
236 </region_group>
237 <end></end>
238 </section>
239 <complex_section guid="2dc61ff1-429f-43c2-ba23-90968f8e933e" last_change="1970-01-01T00:00:00.000" action="added">
240 <section pos="0" guid="90bb4365-64f2-4293-bcef-d389d5b0ff96">
241 <ecc x="0" y="0" z="0"></ecc>
242 <end></end>
243 </section>
244 <section pos="1" guid="90bb4365-64f2-4293-bcef-d389d5b0ff96">
245 <ecc x="0" y="0" z="0"></ecc>
246 <end></end>
247 </section>
248 </complex_section>
249 </sections>
250 {{/code}}
251
252
253 == Materials ==
254
255 The materials element contains all referenced materials of a model. In the StruXML code we can find one material named C30/37 with according material properties.
256
257 {{code language="xml"}}
258 <materials>
259 <material guid="6e4dcf1d-5801-45cc-99ae-c661ec27ce72" last_change="2013-07-19T10:00:42.000" action="added" standard="EC" country="S" name="C30/37">
260 <concrete mass="2.54842" E_0="33000000" E_1="33000000" E_2="33000000" nu_0="0.2" nu_1="0.2" nu_2="0.2" alfa_0="0.00001" alfa_1="0.00001" alfa_2="0.00001" G_0="13750000" G_1="13750000" G_2="13750000" Fck="30" Fck_cube="37" Fctk="2" Fctm="2.9" Ecm="33000" gammaC_0="1.5" gammaC_1="1.2" gammaCE="1.2" gammaS_0="1.15" gammaS_1="1" alfaCc="1" alfaCt="1" Fcd_0="20" Fcd_1="25" Fctd_0="1.33333333333333" Fctd_1="1.66666666666667" Ecd_0="22000" Ecd_1="27500" Epsc2="0.002" Epscu2="0.0035" Epsc3="0.00175" Epscu3="0.0035" environment="0" creep="0" shrinkage="0" nu="0.2" alfa="0.00001"></concrete>
261 </material>
262 </materials>
263 {{/code}}
264
265 (% class="wikigeneratedid" style="text-align: justify;" %)
266 = =
267
268 (% style="text-align: justify;" %)
269 = XML Schema =
270
271 The StruXML format comes with a XML Schema that describes this specific XML type.
272
273
274 |=(% style="background-color: rgb(29, 89, 152); width: 261px;" %)(((
275 (% style="color:#ffffff" %)Latest version
276 )))|=(% style="background-color: rgb(29, 89, 152); width: 1216px;" %)(((
277 (% style="color:#ffffff" %)January 2019
278 )))
279 |(% style="width:261px" %)StruXML Schema|(% style="width:1216px" %)[[⭳ **Download **>>https://drive.google.com/file/d/1tvHaijL-5PrE6HuR4r6YjKcREs6YZcc5/view?usp=sharing]]
280
281 ----
282
283 (% style="text-align: justify;" %)
284 (% class="small" %)Disclaimer: All example files, wrappers and documentation are for illustrative and educational purposes and may not interact with FEM-Design in a reliable way depending on your version, installation and content of the files. Furthermore, StruSoft won´t guarantee full support of the API functions since they are customizable by the customer.
Copyright 2020 StruSoft AB
FEM-Design Wiki