mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-10 01:41:57 +00:00
@@ -1,11 +1,10 @@
|
||||
import gc
|
||||
import sys
|
||||
import os
|
||||
import pytest
|
||||
import pprint
|
||||
import weakref
|
||||
import itertools
|
||||
import ifcopenshell
|
||||
import ifcopenshell.api
|
||||
import ifcopenshell.template
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
@@ -77,5 +76,47 @@ def test_file_gc(args):
|
||||
assert r() is None
|
||||
|
||||
|
||||
def test_bug_2517():
|
||||
fixtures = os.path.join(os.path.dirname(__file__), 'fixtures')
|
||||
model = ifcopenshell.open(f'{fixtures}/bug_2517_test2.ifc')
|
||||
library = ifcopenshell.open(f"{fixtures}/bug_2517_lib.ifc")
|
||||
result = model.add(library.by_type("IfcClassification")[0])
|
||||
model.create_entity(
|
||||
"IfcRelAssociatesClassification",
|
||||
GlobalId=ifcopenshell.guid.new(),
|
||||
RelatedObjects=[model.by_type("IfcProject")[0]],
|
||||
RelatingClassification=result,
|
||||
)
|
||||
|
||||
|
||||
def test_bug_2486_a():
|
||||
run = ifcopenshell.api.run
|
||||
|
||||
file = run("project.create_file")
|
||||
|
||||
mymaterial = run("material.add_material", file)
|
||||
pset = run("pset.add_pset", file, product=mymaterial)
|
||||
run(
|
||||
"pset.edit_pset",
|
||||
file,
|
||||
pset=pset,
|
||||
properties={"foo": "bar"},
|
||||
)
|
||||
|
||||
another_file = run("project.create_file")
|
||||
|
||||
run(
|
||||
"project.append_asset",
|
||||
another_file,
|
||||
library=file,
|
||||
element=mymaterial,
|
||||
)
|
||||
|
||||
|
||||
def test_bug_2486_b():
|
||||
file = ifcopenshell.template.create()
|
||||
file.wrapped_data.header.file_name.name = "myfile.ifc"
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
pytest.main(["-sx", __file__])
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
ISO-10303-21;
|
||||
HEADER;
|
||||
FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1');
|
||||
FILE_NAME('','2020-04-23T18:09:38',(),(),'IfcOpenShell 0.6.0b0','IfcOpenShell 0.6.0b0','');
|
||||
FILE_SCHEMA(('IFC4'));
|
||||
ENDSEC;
|
||||
DATA;
|
||||
#1=IFCPROJECTLIBRARY($,$,'Uniclass 2015',$,$,$,$,$,$);
|
||||
#2=IFCCLASSIFICATION('RIBA Enterprises Ltd','January 2020','2020-02-07','Uniclass 2015','Uniclass 2015 is a unified classification for the UK industry covering all construction sectors.','https://toolkit.thenbs.com/articles/classification',('_'));
|
||||
#3=IFCRELASSOCIATESCLASSIFICATION('1P2XR4Nm9C_xuJOdxBr7V0',$,$,$,(#1),#2);
|
||||
ENDSEC;
|
||||
END-ISO-10303-21;
|
||||
@@ -0,0 +1,80 @@
|
||||
ISO-10303-21;
|
||||
HEADER;
|
||||
FILE_DESCRIPTION(('ViewDefinition[DesignTransferView]'),'2;1');
|
||||
FILE_NAME('test2.ifc','2022-10-20T10:10:40+11:00',(),(),'IfcOpenShell v0.7.0-16b05d99','BlenderBIM 0.0.999999','Nobody');
|
||||
FILE_SCHEMA(('IFC4'));
|
||||
ENDSEC;
|
||||
DATA;
|
||||
#1=IFCPROJECT('14Rb1ds252deEk3MYZ3Sro',$,'My Project',$,$,$,$,(#14,#21),#9);
|
||||
#2=IFCSIUNIT(*,.LENGTHUNIT.,$,.METRE.);
|
||||
#3=IFCSIUNIT(*,.AREAUNIT.,$,.SQUARE_METRE.);
|
||||
#4=IFCSIUNIT(*,.VOLUMEUNIT.,$,.CUBIC_METRE.);
|
||||
#5=IFCDIMENSIONALEXPONENTS(0,0,0,0,0,0,0);
|
||||
#6=IFCSIUNIT(*,.PLANEANGLEUNIT.,$,.RADIAN.);
|
||||
#7=IFCMEASUREWITHUNIT(IFCREAL(0.0174532925199433),#6);
|
||||
#8=IFCCONVERSIONBASEDUNIT(#5,.PLANEANGLEUNIT.,'degree',#7);
|
||||
#9=IFCUNITASSIGNMENT((#4,#2,#8,#3));
|
||||
#10=IFCCARTESIANPOINT((0.,0.,0.));
|
||||
#11=IFCDIRECTION((0.,0.,1.));
|
||||
#12=IFCDIRECTION((1.,0.,0.));
|
||||
#13=IFCAXIS2PLACEMENT3D(#10,#11,#12);
|
||||
#14=IFCGEOMETRICREPRESENTATIONCONTEXT($,'Model',3,1.E-05,#13,$);
|
||||
#15=IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Body','Model',*,*,*,*,#14,$,.MODEL_VIEW.,$);
|
||||
#16=IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Axis','Model',*,*,*,*,#14,$,.GRAPH_VIEW.,$);
|
||||
#17=IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Box','Model',*,*,*,*,#14,$,.MODEL_VIEW.,$);
|
||||
#18=IFCCARTESIANPOINT((0.,0.,0.));
|
||||
#19=IFCDIRECTION((1.,0.,0.));
|
||||
#20=IFCAXIS2PLACEMENT2D(#18,#19);
|
||||
#21=IFCGEOMETRICREPRESENTATIONCONTEXT($,'Plan',2,1.E-05,#20,$);
|
||||
#22=IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Axis','Plan',*,*,*,*,#21,$,.GRAPH_VIEW.,$);
|
||||
#23=IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Annotation','Plan',*,*,*,*,#21,$,.PLAN_VIEW.,$);
|
||||
#24=IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Annotation','Plan',*,*,*,*,#21,$,.SECTION_VIEW.,$);
|
||||
#25=IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Annotation','Plan',*,*,*,*,#21,$,.ELEVATION_VIEW.,$);
|
||||
#26=IFCSITE('1oVQtjLUn15eyGMhU1NDQ3',$,'My Site',$,$,#49,$,$,$,$,$,$,$,$);
|
||||
#32=IFCBUILDING('22wi8FrBf9tQTrnJ5cBQqm',$,'My Building',$,$,#55,$,$,$,$,$,$);
|
||||
#38=IFCBUILDINGSTOREY('2mXD0PqEnEpubtdzWmokMm',$,'My Storey',$,$,#61,$,$,$,$);
|
||||
#44=IFCRELAGGREGATES('09z_pjz01BO9JxkuqGqULM',$,$,$,#1,(#26));
|
||||
#45=IFCCARTESIANPOINT((0.,0.,0.));
|
||||
#46=IFCDIRECTION((0.,0.,1.));
|
||||
#47=IFCDIRECTION((1.,0.,0.));
|
||||
#48=IFCAXIS2PLACEMENT3D(#45,#46,#47);
|
||||
#49=IFCLOCALPLACEMENT($,#48);
|
||||
#50=IFCRELAGGREGATES('1BT2khvOnCdQPndrAGFCZh',$,$,$,#26,(#32));
|
||||
#51=IFCCARTESIANPOINT((0.,0.,0.));
|
||||
#52=IFCDIRECTION((0.,0.,1.));
|
||||
#53=IFCDIRECTION((1.,0.,0.));
|
||||
#54=IFCAXIS2PLACEMENT3D(#51,#52,#53);
|
||||
#55=IFCLOCALPLACEMENT(#49,#54);
|
||||
#56=IFCRELAGGREGATES('3Az960vQr16huWPdYmTnLJ',$,$,$,#32,(#38));
|
||||
#57=IFCCARTESIANPOINT((0.,0.,0.));
|
||||
#58=IFCDIRECTION((0.,0.,1.));
|
||||
#59=IFCDIRECTION((1.,0.,0.));
|
||||
#60=IFCAXIS2PLACEMENT3D(#57,#58,#59);
|
||||
#61=IFCLOCALPLACEMENT(#55,#60);
|
||||
#62=IFCACTUATOR('2SHuNm3YXE89$LlLNAww0j',$,'Cube',$,$,#91,#80,$,.ELECTRICACTUATOR.);
|
||||
#68=IFCINDEXEDPOLYGONALFACE((1,5,7,3));
|
||||
#69=IFCINDEXEDPOLYGONALFACE((4,3,7,8));
|
||||
#70=IFCINDEXEDPOLYGONALFACE((8,7,5,6));
|
||||
#71=IFCINDEXEDPOLYGONALFACE((6,2,4,8));
|
||||
#72=IFCINDEXEDPOLYGONALFACE((2,1,3,4));
|
||||
#73=IFCINDEXEDPOLYGONALFACE((6,5,1,2));
|
||||
#74=IFCCARTESIANPOINTLIST3D(((1.,1.,1.),(1.,1.,-1.),(1.,-1.,1.),(1.,-1.,-1.),(-1.,1.,1.),(-1.,1.,-1.),(-1.,-1.,1.),(-1.,-1.,-1.)));
|
||||
#75=IFCPOLYGONALFACESET(#74,$,(#68,#69,#70,#71,#72,#73),$);
|
||||
#76=IFCSHAPEREPRESENTATION(#15,'Body','Tessellation',(#75));
|
||||
#77=IFCCARTESIANPOINT((-1.,-1.,-1.));
|
||||
#78=IFCBOUNDINGBOX(#77,2.,2.,2.);
|
||||
#79=IFCSHAPEREPRESENTATION(#17,'Box','BoundingBox',(#78));
|
||||
#80=IFCPRODUCTDEFINITIONSHAPE($,$,(#79,#76));
|
||||
#81=IFCSURFACESTYLE('Material',.BOTH.,(#82));
|
||||
#82=IFCSURFACESTYLERENDERING(#83,0.,#84,$,$,$,IFCNORMALISEDRATIOMEASURE(0.),IFCSPECULARROUGHNESS(0.5),.NOTDEFINED.);
|
||||
#83=IFCCOLOURRGB($,0.800000011920929,0.800000011920929,0.800000011920929);
|
||||
#84=IFCCOLOURRGB($,0.800000011920929,0.800000011920929,0.800000011920929);
|
||||
#85=IFCSTYLEDITEM(#75,(#81),'Material');
|
||||
#86=IFCRELCONTAINEDINSPATIALSTRUCTURE('2gI6yW7IT19R9cT5VamRAp',$,$,$,(#62),#38);
|
||||
#87=IFCCARTESIANPOINT((0.,0.,0.));
|
||||
#88=IFCDIRECTION((0.,0.,1.));
|
||||
#89=IFCDIRECTION((1.,0.,0.));
|
||||
#90=IFCAXIS2PLACEMENT3D(#87,#88,#89);
|
||||
#91=IFCLOCALPLACEMENT(#61,#90);
|
||||
ENDSEC;
|
||||
END-ISO-10303-21;
|
||||
Reference in New Issue
Block a user