2023-01-11 12:50:30 +01:00
|
|
|
import ifcopenshell
|
|
|
|
|
|
2024-07-26 12:00:28 +10:00
|
|
|
make_nd = lambda d: lambda *c: (c + (0.0,)) if d == 3 else c
|
2023-01-11 12:50:30 +01:00
|
|
|
|
2024-07-26 12:00:28 +10:00
|
|
|
for d1, d2 in ((2, 3), (3, 3), (3, 2)):
|
2023-01-11 12:50:30 +01:00
|
|
|
f = ifcopenshell.file(schema="IFC2X3")
|
|
|
|
|
f.createIfcLocalPlacement(
|
|
|
|
|
PlacementRelTo=f.createIfcLocalPlacement(
|
|
|
|
|
PlacementRelTo=None,
|
2024-07-26 12:00:28 +10:00
|
|
|
RelativePlacement=f.create_entity(
|
|
|
|
|
f"IfcAxis2Placement{d1}D", f.createIfcCartesianPoint(make_nd(d1)(0.0, 0.0))
|
|
|
|
|
),
|
2023-01-11 12:50:30 +01:00
|
|
|
),
|
2024-07-26 12:00:28 +10:00
|
|
|
RelativePlacement=f.create_entity(f"IfcAxis2Placement{d2}D", f.createIfcCartesianPoint(make_nd(d2)(0.0, 0.0))),
|
2023-01-11 12:50:30 +01:00
|
|
|
)
|
|
|
|
|
f.write(f"{'pass' if d1 >= d2 else 'fail'}-placement-{d1}d-{d2}d-ifc2x3.ifc")
|