Skip to main content

FIXTURE_IFC

Constant FIXTURE_IFC 

Source
pub const FIXTURE_IFC: &str = r#"ISO-10303-21;
HEADER;
FILE_DESCRIPTION(('mesh-output determinism manifest fixture'),'2;1');
FILE_NAME('mesh_determinism.ifc','2026-07-01T00:00:00',(''),(''),'','','');
FILE_SCHEMA(('IFC4'));
ENDSEC;
DATA;
#1=IFCPROJECT('0DeterminismProject00A',$,'Determinism',$,$,$,$,(#10),#7);
#7=IFCUNITASSIGNMENT((#8));
#8=IFCSIUNIT(*,.LENGTHUNIT.,$,.METRE.);
#10=IFCGEOMETRICREPRESENTATIONCONTEXT($,'Model',3,1.E-5,#11,$);
#11=IFCAXIS2PLACEMENT3D(#12,$,$);
#12=IFCCARTESIANPOINT((0.,0.,0.));
#13=IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Body','Model',*,*,*,*,#10,$,.MODEL_VIEW.,$);
#20=IFCLOCALPLACEMENT($,#11);
#30=IFCRECTANGLEPROFILEDEF(.AREA.,'WallProfile',#31,4.0,0.3);
#31=IFCAXIS2PLACEMENT2D(#32,#33);
#32=IFCCARTESIANPOINT((0.,0.));
#33=IFCDIRECTION((1.,0.));
#40=IFCEXTRUDEDAREASOLID(#30,#41,#42,2.5);
#41=IFCAXIS2PLACEMENT3D(#12,$,$);
#42=IFCDIRECTION((0.,0.,1.));
#50=IFCSHAPEREPRESENTATION(#13,'Body','SweptSolid',(#40));
#51=IFCPRODUCTDEFINITIONSHAPE($,$,(#50));
#100=IFCWALL('0DeterminismWall0000A',$,'Wall',$,$,#20,#51,$,$);
#110=IFCLOCALPLACEMENT(#20,#111);
#111=IFCAXIS2PLACEMENT3D(#112,#113,#114);
#112=IFCCARTESIANPOINT((0.,-0.5,1.25));
#113=IFCDIRECTION((0.,1.,0.));
#114=IFCDIRECTION((1.,0.,0.));
#127=IFCRECTANGLEPROFILEDEF(.AREA.,'OpeningProfile',#128,1.2,1.5);
#128=IFCAXIS2PLACEMENT2D(#32,#33);
#131=IFCEXTRUDEDAREASOLID(#127,#132,#42,1.0);
#132=IFCAXIS2PLACEMENT3D(#12,$,$);
#140=IFCSHAPEREPRESENTATION(#13,'Body','SweptSolid',(#131));
#141=IFCPRODUCTDEFINITIONSHAPE($,$,(#140));
#200=IFCOPENINGELEMENT('0DeterminismOpening0A',$,'Opening',$,$,#110,#141,$,.OPENING.);
#300=IFCRELVOIDSELEMENT('0DeterminismVoids000A',$,$,$,#100,#200);
#400=IFCBUILDINGELEMENTPROXY('0DeterminismProxy000A',$,'MultiMaterial',$,$,#401,#402,$,$);
#401=IFCLOCALPLACEMENT($,#403);
#403=IFCAXIS2PLACEMENT3D(#404,$,$);
#404=IFCCARTESIANPOINT((6.,0.,0.));
#402=IFCPRODUCTDEFINITIONSHAPE($,$,(#405));
#405=IFCSHAPEREPRESENTATION(#13,'Body','Tessellation',(#406));
#406=IFCTRIANGULATEDFACESET(#407,$,.T.,((1,2,3),(1,2,4),(1,4,3),(2,3,4)),$);
#407=IFCCARTESIANPOINTLIST3D(((0.,0.,0.),(1.,0.,0.),(0.,1.,0.),(0.,0.,1.)));
#430=IFCSTYLEDITEM($,(#431),$);
#431=IFCSURFACESTYLE('Glazing',.BOTH.,(#432));
#432=IFCSURFACESTYLERENDERING(#433,0.5,$,$,$,$,$,$,.FLAT.);
#433=IFCCOLOURRGB($,0.2,0.4,0.8);
#434=IFCSTYLEDITEM($,(#435),$);
#435=IFCSURFACESTYLE('Frame',.BOTH.,(#436));
#436=IFCSURFACESTYLERENDERING(#437,$,$,$,$,$,$,$,.FLAT.);
#437=IFCCOLOURRGB($,0.7,0.5,0.2);
#440=IFCMATERIAL('Glazing',$,$);
#441=IFCMATERIALDEFINITIONREPRESENTATION($,$,(#442),#440);
#442=IFCSTYLEDREPRESENTATION(#10,'Style','Material',(#430));
#445=IFCMATERIAL('Frame',$,$);
#446=IFCMATERIALDEFINITIONREPRESENTATION($,$,(#447),#445);
#447=IFCSTYLEDREPRESENTATION(#10,'Style','Material',(#434));
#450=IFCMATERIALLIST((#440,#445));
#460=IFCRELASSOCIATESMATERIAL('0DeterminismRelMat00A',$,$,$,(#400),#450);
#500=IFCCOLUMN('0DeterminismColumn00A',$,'Column',$,$,#501,#502,$,$);
#501=IFCLOCALPLACEMENT($,#503);
#503=IFCAXIS2PLACEMENT3D(#504,$,$);
#504=IFCCARTESIANPOINT((10.,0.,0.));
#502=IFCPRODUCTDEFINITIONSHAPE($,$,(#505));
#505=IFCSHAPEREPRESENTATION(#13,'Body','SweptSolid',(#506));
#506=IFCEXTRUDEDAREASOLID(#507,#508,#42,3.0);
#507=IFCCIRCLEPROFILEDEF(.AREA.,'ColumnProfile',#31,0.25);
#508=IFCAXIS2PLACEMENT3D(#12,$,$);
#530=IFCSTYLEDITEM(#506,(#531),$);
#531=IFCSURFACESTYLE('Concrete',.BOTH.,(#532));
#532=IFCSURFACESTYLERENDERING(#533,$,$,$,$,$,$,$,.FLAT.);
#533=IFCCOLOURRGB($,0.62,0.6,0.55);
#600=IFCWALL('0DeterminismWall0600A',$,'Wall2',$,$,#601,#651,$,$);
#601=IFCLOCALPLACEMENT($,#602);
#602=IFCAXIS2PLACEMENT3D(#603,$,$);
#603=IFCCARTESIANPOINT((0.,3.,0.));
#630=IFCRECTANGLEPROFILEDEF(.AREA.,'WallProfile2',#31,3.0,0.3);
#640=IFCEXTRUDEDAREASOLID(#630,#41,#42,2.5);
#650=IFCSHAPEREPRESENTATION(#13,'Body','SweptSolid',(#640));
#651=IFCPRODUCTDEFINITIONSHAPE($,$,(#650));
#700=IFCOPENINGELEMENT('0DeterminismOpening7A',$,'Opening2',$,$,#710,#741,$,.OPENING.);
#710=IFCLOCALPLACEMENT(#601,#711);
#711=IFCAXIS2PLACEMENT3D(#712,#113,#114);
#712=IFCCARTESIANPOINT((0.5,-0.5,1.0));
#727=IFCRECTANGLEPROFILEDEF(.AREA.,'OpeningProfile2',#128,0.9,1.2);
#731=IFCEXTRUDEDAREASOLID(#727,#132,#42,1.0);
#740=IFCSHAPEREPRESENTATION(#13,'Body','SweptSolid',(#731));
#741=IFCPRODUCTDEFINITIONSHAPE($,$,(#740));
#800=IFCRELVOIDSELEMENT('0DeterminismVoids800A',$,$,$,#600,#700);
#820=IFCRELASSOCIATESMATERIAL('0DeterminismRelMat82A',$,$,$,(#500),#445);
ENDSEC;
END-ISO-10303-21;
"#;
Expand description

Synthetic determinism fixture (house rule: no client data). Exercises the wire surfaces the manifest pins:

  • #100 wall voided by opening #200 and #600 wall voided by #700 (flat_voids with TWO hosts, so the sorted key order is load-bearing, plus the exact CSG cut),
  • #400 proxy with a two-material IfcMaterialList appearance chain (transparent + opaque colours) and #500 with a single material - TWO flat_material_colors entries, so that sort order is load-bearing too,
  • #500 round column (IfcCircleProfileDef - Medium tessellation density),
  • #530 geometry-attached IfcStyledItem on the column solid #506, so flat_styles_rgba8 carries every precedence layer (geometry style + material colours + per-element fallback) and its sorted id order is load-bearing.