#2685 WR test cases for local placement / indeterminate

This commit is contained in:
Thomas Krijnen
2023-01-11 12:50:30 +01:00
parent e64047c511
commit 608952a4dd
4 changed files with 63 additions and 0 deletions
@@ -0,0 +1,15 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1');
FILE_NAME('','2023-01-11T11:39:57',(),(),'IfcOpenShell v0.7.0-8a108f37','IfcOpenShell v0.7.0-8a108f37','');
FILE_SCHEMA(('IFC2X3'));
ENDSEC;
DATA;
#1=IFCCARTESIANPOINT((0.,0.));
#2=IFCAXIS2PLACEMENT2D(#1,$);
#3=IFCLOCALPLACEMENT($,#2);
#4=IFCCARTESIANPOINT((0.,0.,0.));
#5=IFCAXIS2PLACEMENT3D(#4,$,$);
#6=IFCLOCALPLACEMENT(#3,#5);
ENDSEC;
END-ISO-10303-21;
@@ -0,0 +1,18 @@
import ifcopenshell
make_nd = lambda d: lambda *c: (c + (0.,)) if d == 3 else c
for d1, d2 in ((2,3), (3,3), (3,2)):
f = ifcopenshell.file(schema="IFC2X3")
f.createIfcLocalPlacement(
PlacementRelTo=f.createIfcLocalPlacement(
PlacementRelTo=None,
RelativePlacement=f.create_entity(f'IfcAxis2Placement{d1}D',
f.createIfcCartesianPoint(make_nd(d1)(0., 0.))
)
),
RelativePlacement=f.create_entity(f'IfcAxis2Placement{d2}D',
f.createIfcCartesianPoint(make_nd(d2)(0., 0.))
)
)
f.write(f"{'pass' if d1 >= d2 else 'fail'}-placement-{d1}d-{d2}d-ifc2x3.ifc")
@@ -0,0 +1,15 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1');
FILE_NAME('','2023-01-11T11:39:57',(),(),'IfcOpenShell v0.7.0-8a108f37','IfcOpenShell v0.7.0-8a108f37','');
FILE_SCHEMA(('IFC2X3'));
ENDSEC;
DATA;
#1=IFCCARTESIANPOINT((0.,0.,0.));
#2=IFCAXIS2PLACEMENT3D(#1,$,$);
#3=IFCLOCALPLACEMENT($,#2);
#4=IFCCARTESIANPOINT((0.,0.));
#5=IFCAXIS2PLACEMENT2D(#4,$);
#6=IFCLOCALPLACEMENT(#3,#5);
ENDSEC;
END-ISO-10303-21;
@@ -0,0 +1,15 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1');
FILE_NAME('','2023-01-11T11:39:57',(),(),'IfcOpenShell v0.7.0-8a108f37','IfcOpenShell v0.7.0-8a108f37','');
FILE_SCHEMA(('IFC2X3'));
ENDSEC;
DATA;
#1=IFCCARTESIANPOINT((0.,0.,0.));
#2=IFCAXIS2PLACEMENT3D(#1,$,$);
#3=IFCLOCALPLACEMENT($,#2);
#4=IFCCARTESIANPOINT((0.,0.,0.));
#5=IFCAXIS2PLACEMENT3D(#4,$,$);
#6=IFCLOCALPLACEMENT(#3,#5);
ENDSEC;
END-ISO-10303-21;