ISO-10303-21;
/* sample taken from https://en.wikipedia.org/wiki/ISO_10303-21 */
HEADER;
FILE_DESCRIPTION(
/* description */ ('A minimal AP214 example with a single part'),
/* implementation_level */ '2;1');
FILE_NAME(
/* name */ 'demo',
/* time_stamp */ '2003-12-27T11:57:53',
/* author */ ('Lothar Klein'),
/* organization */ ('LKSoft'),
/* preprocessor_version */ ' ',
/* originating_system */ 'IDA-STEP',
/* authorization */ ' ');
FILE_SCHEMA (('AUTOMOTIVE_DESIGN { 1 0 10303 214 2 1 1}'));
ENDSEC;
DATA;
#10=ORGANIZATION('O0001','LKSoft','company');
#11=PRODUCT_DEFINITION_CONTEXT('part definition',#12,'manufacturing');
#12=APPLICATION_CONTEXT('mechanical design');
#13=APPLICATION_PROTOCOL_DEFINITION('','automotive_design',2003,#12);
#14=PRODUCT_DEFINITION('0',$,#15,#11);
#15=PRODUCT_DEFINITION_FORMATION('1',$,#16);
#16=PRODUCT('A0001','Test Part 1','',(#18));
#17=PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#16));
#18=PRODUCT_CONTEXT('',#12,'');
#19=APPLIED_ORGANIZATION_ASSIGNMENT(#10,#20,(#16));
#20=ORGANIZATION_ROLE('id owner');

/** String encoding sample from https://github.com/mozman/steputils/ .*/
#200= IFCPRESENTATIONLAYERWITHSTYLE('STB-W\X2\00E4\X0\nde Neu 3D',$,(
#180,#319,#396,#486,#576,#1449,#1551,#1647,#1747,#1847,#1947,#2047,#2147
,#2243,#2343,#2443,#4002,#7817,#8027,#8204,#8380,#8556,#8732,#8908,#9084
,#9141,#9353,#9530,#9706,#9882,#10058,#10111,#10321,#10498,#10674,#10731
),'BT_N_STB_W\X2\00C4\X0\NDE',.T.,.U.,.F.,(#201));

/** Binary literals */
#42=FOO("0FF", "1AB42")

ENDSEC;
END-ISO-10303-21;


ISO-10303-21;
/**
  Example taken from the IFC documentation.
  https://ifc43-docs.standards.buildingsmart.org/IFC/RELEASE/IFC4x3/HTML/annex-e.html
*/
HEADER;
FILE_DESCRIPTION(('ViewDefinition [NotAssigned]'),'2;1');
FILE_NAME(
/* name */ 'beam-extruded-solid.ifc',
/* time_stamp */ '2016-02-04T08:11:04',
/* author */ ('redacted'),
/* organization */ ('redacted'),
/* preprocessor_version */ 'redacted',
/* originating_system */ 'redacted - redacted - 3.14159',
/* authorization */ 'None');

FILE_SCHEMA (('IFC4X3_DEV_2e79a7d'));
ENDSEC;

DATA;
/* general entities required for all IFC data sets, defining the context for the exchange */
#1= IFCGEOMETRICREPRESENTATIONCONTEXT($,'Model',3,0.0001,#3,$);
#2= IFCCARTESIANPOINT((0.0,0.0,0.0));
#3= IFCAXIS2PLACEMENT3D(#2,$,$);
#4= IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Axis','Model',*,*,*,*,#1,$,.MODEL_VIEW.,$);
#5= IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Body','Model',*,*,*,*,#1,$,.MODEL_VIEW.,$);
/* defines the default building (as required as the minimum spatial element)  */
#50= IFCBUILDING('39t4Pu3nTC4ekXYRIHJB9W',$,'IfcBuilding',$,$,$,$,$,$,$,$,$);
#51= IFCRELCONTAINEDINSPATIALSTRUCTURE('3Sa3dTJGn0H8TQIGiuGQd5',$,'Building','Building Container for Elements',(#211),#50);
#52= IFCAXIS2PLACEMENT3D(#2,$,$);
#100= IFCPROJECT('0$WU4A9R19$vKWO$AdOnKA',$,'IfcProject',$,$,$,$,(#1),#101);
#101= IFCUNITASSIGNMENT((#102,#103,#104));
#102= IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.);
#103= IFCSIUNIT(*,.PLANEANGLEUNIT.,$,.RADIAN.);
#104= IFCSIUNIT(*,.TIMEUNIT.,$,.SECOND.);
#105= IFCRELAGGREGATES('091a6ewbvCMQ2Vyiqspa7a',$,'Project Container','Project Container for Buildings',#100,(#50));
#200= IFCCARTESIANPOINTLIST2D(((2.8,-79.5),(2.8,79.5),(6.31471899999999,87.985281),(14.8,91.5),(50.0,91.5),(50.0,100.0),(-50.0,100.0),(-50.0,91.5),(-14.8,91.5),(-6.31471899999997,87.985281),(-2.79999999999999,79.5),(-2.8,-79.5),(-6.31471899999999,-87.985281),(-14.8,-91.5),(-50.0,-91.5),(-50.0,-100.0),(50.0,-100.0),(50.0,-91.5),(14.8,-91.5),(6.31471899999997,-87.985281)),$);
#201= IFCINDEXEDPOLYCURVE(#200,(IFCLINEINDEX((1,2)),IFCARCINDEX((2,3,4)),IFCLINEINDEX((4,5,6,7,8,9)),IFCARCINDEX((9,10,11)),IFCLINEINDEX((11,12)),IFCARCINDEX((12,13,14)),IFCLINEINDEX((14,15,16,17,18,19)),IFCARCINDEX((19,20,1))),.F.);
#202= IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,'IPE200',#201);
#203= IFCCARTESIANPOINT((0.0,0.0,0.0));
#204= IFCDIRECTION((0.0,1.0,0.0));
#205= IFCDIRECTION((1.0,0.0,0.0));
#206= IFCAXIS2PLACEMENT3D(#203,#204,#205);
#207= IFCDIRECTION((0.0,0.0,1.0));
#208= IFCEXTRUDEDAREASOLID(#202,#206,#207,1000.0);
#209= IFCSHAPEREPRESENTATION(#5,'Body','SweptSolid',(#208));
#210= IFCPRODUCTDEFINITIONSHAPE($,$,(#209));
#211= IFCBEAM('0EF5_zZRv0pQPddeofU3KT',$,'ExampleBeamName','ExampleBeamDescription',$,#213,#210,'Tag',$);
#212= IFCAXIS2PLACEMENT3D(#2,$,$);
#213= IFCLOCALPLACEMENT($,#212);
ENDSEC;

END-ISO-10303-21;