From 39d065717c1cb51c0e9002a8b9fb431853ab9d42 Mon Sep 17 00:00:00 2001 From: Yorik van Havre Date: Wed, 16 Apr 2014 18:43:01 -0300 Subject: [PATCH] Arch: Better IFC export of walls --- src/Mod/Arch/ifcWriter.py | 7 +++++-- src/Mod/Arch/importIFC.py | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/Mod/Arch/ifcWriter.py b/src/Mod/Arch/ifcWriter.py index 4386d896d50e..17178eb71b53 100644 --- a/src/Mod/Arch/ifcWriter.py +++ b/src/Mod/Arch/ifcWriter.py @@ -435,7 +435,7 @@ def _relate(self,container,entities): else: create(self._fileobject,"IfcRelAggregates",[uid(),self._owner,'Relationship','',container,entities]) - def addWall(self,shapes,storey=None,placement=None,name="Default wall",description=None): + def addWall(self,shapes,storey=None,placement=None,name="Default wall",description=None,standard=False): """addWall(shapes,[storey,placement,name,description]): creates a wall from the given representation shape(s)""" if not placement: placement = self.addPlacement() @@ -443,7 +443,10 @@ def addWall(self,shapes,storey=None,placement=None,name="Default wall",descripti shapes = [shapes] reps = [create(self._fileobject,"IfcShapeRepresentation",[self._repcontext,'Body','SweptSolid',[shape]]) for shape in shapes] prd = create(self._fileobject,"IfcProductDefinitionShape",[None,None,reps]) - wal = create(self._fileobject,"IfcWallStandardCase",[uid(),self._owner,name,description,None,placement,prd,None]) + if standard: + wal = create(self._fileobject,"IfcWallStandardCase",[uid(),self._owner,name,description,None,placement,prd,None]) + else: + wal = create(self._fileobject,"IfcWall",[uid(),self._owner,name,description,None,placement,prd,None]) self.BuildingProducts.append(wal) if not storey: if self.Storeys: diff --git a/src/Mod/Arch/importIFC.py b/src/Mod/Arch/importIFC.py index 30318501df1e..98c5ee865310 100644 --- a/src/Mod/Arch/importIFC.py +++ b/src/Mod/Arch/importIFC.py @@ -976,7 +976,7 @@ def export(exportList,filename): if parent: parent = ifc.findByName("IfcBuildingStorey",str(parent.Label)) if gdata: - ifc.addWall( ifc.addExtrudedPolyline(gdata[0],gdata[1]), storey=parent, name=name ) + ifc.addWall( ifc.addExtrudedPolyline(gdata[0],gdata[1]), storey=parent, name=name, standard=True ) elif fdata: ifc.addWall( [ifc.addFacetedBrep(f) for f in fdata], storey=parent, name=name )