Merge pull request #21289 from tetektoza/fix/fix_transparency_doors_windows_ifc
BIM: Change from RGBT to RGBA for IFC
This commit is contained in:
@@ -2346,6 +2346,7 @@ def getRepresentation(
|
||||
if hasattr(obj,"Material"):
|
||||
if obj.Material:
|
||||
m = obj.Material.Label
|
||||
rgbt[i] = (rgbt[i][0], rgbt[i][1], rgbt[i][2], obj.Material.Transparency/100.0)
|
||||
psa = ifcbin.createIfcPresentationStyleAssignment(m,rgbt[i][0],rgbt[i][1],rgbt[i][2],rgbt[i][3])
|
||||
surfstyles[key] = psa
|
||||
isi = ifcfile.createIfcStyledItem(shape,[psa],None)
|
||||
|
||||
@@ -381,15 +381,15 @@ class recycler:
|
||||
self.rgbs[key] = c
|
||||
return c
|
||||
|
||||
def createIfcSurfaceStyleRendering(self,col,trans=0):
|
||||
key = (col.Red,col.Green,col.Blue,trans)
|
||||
def createIfcSurfaceStyleRendering(self,col,alpha=1):
|
||||
key = (col.Red,col.Green,col.Blue,alpha)
|
||||
if self.compress and key in self.ssrenderings:
|
||||
self.spared += 1
|
||||
return self.ssrenderings[key]
|
||||
else:
|
||||
if trans == 0:
|
||||
trans = None
|
||||
c = self.ifcfile.createIfcSurfaceStyleRendering(col,trans,None,None,None,None,None,None,"FLAT")
|
||||
if alpha == 1:
|
||||
alpha = None
|
||||
c = self.ifcfile.createIfcSurfaceStyleRendering(col,alpha,None,None,None,None,None,None,"FLAT")
|
||||
if self.compress:
|
||||
self.ssrenderings[key] = c
|
||||
return c
|
||||
@@ -405,7 +405,7 @@ class recycler:
|
||||
self.transformationoperators[key] = c
|
||||
return c
|
||||
|
||||
def createIfcSurfaceStyle(self,name,r,g,b,t=0):
|
||||
def createIfcSurfaceStyle(self,name,r,g,b,a=1):
|
||||
if name:
|
||||
key = name + str((r,g,b))
|
||||
else:
|
||||
@@ -415,22 +415,22 @@ class recycler:
|
||||
return self.sstyles[key]
|
||||
else:
|
||||
col = self.createIfcColourRgb(r,g,b)
|
||||
ssr = self.createIfcSurfaceStyleRendering(col,t)
|
||||
ssr = self.createIfcSurfaceStyleRendering(col,a)
|
||||
c = self.ifcfile.createIfcSurfaceStyle(name,"BOTH",[ssr])
|
||||
if self.compress:
|
||||
self.sstyles[key] = c
|
||||
return c
|
||||
|
||||
def createIfcPresentationStyleAssignment(self,name,r,g,b,t=0,ifc4=False):
|
||||
def createIfcPresentationStyleAssignment(self,name,r,g,b,a=1,ifc4=False):
|
||||
if name:
|
||||
key = name+str((r,g,b,t))
|
||||
key = name+str((r,g,b,a))
|
||||
else:
|
||||
key = str((r,g,b,t))
|
||||
key = str((r,g,b,a))
|
||||
if self.compress and key in self.psas:
|
||||
self.spared += 1
|
||||
return self.psas[key]
|
||||
else:
|
||||
iss = self.createIfcSurfaceStyle(name,r,g,b,t)
|
||||
iss = self.createIfcSurfaceStyle(name,r,g,b,a)
|
||||
if ifc4:
|
||||
c = iss
|
||||
else:
|
||||
|
||||
Reference in New Issue
Block a user