Arch: Minor bugfixes in IFC import

This commit is contained in:
Yorik van Havre
2019-04-09 10:56:01 -03:00
parent 7dfdb609c7
commit c4537a5974
2 changed files with 16 additions and 7 deletions

View File

@@ -259,6 +259,14 @@ class _ArchMaterial:
obj.addProperty("App::PropertyPercent","Transparency","Arch",QT_TRANSLATE_NOOP("App::Property","The transparency value of this material"))
obj.addProperty("App::PropertyColor","Color","Arch",QT_TRANSLATE_NOOP("App::Property","The color of this material"))
def isSameColor(self,c1,c2):
if round(c1[0],6) == round(c2[0],6):
if round(c1[1],6) == round(c2[1],6):
if round(c1[2],6) == round(c2[2],6):
return True
return False
def onChanged(self,obj,prop):
d = obj.Material
@@ -266,7 +274,7 @@ class _ArchMaterial:
if "DiffuseColor" in obj.Material:
c = tuple([float(f) for f in obj.Material['DiffuseColor'].strip("()").split(",")])
if hasattr(obj,"Color"):
if obj.Color != c:
if not self.isSameColor(obj.Color,c):
obj.Color = c
if "Transparency" in obj.Material:
t = int(obj.Material['Transparency'])
@@ -296,11 +304,10 @@ class _ArchMaterial:
d["Name"] = obj.Label
elif prop == "Color":
if hasattr(obj,"Color"):
val = str(obj.Color[:3])
if "DiffuseColor" in d:
if d["DiffuseColor"] == val:
if self.isSameColor(tuple([float(f) for f in d['DiffuseColor'].strip("()").split(",")]),obj.Color[:3]):
return
d["DiffuseColor"] = val
d["DiffuseColor"] = str(obj.Color[:3])
elif prop == "Transparency":
if hasattr(obj,"Transparency"):
val = str(obj.Transparency)
@@ -331,10 +338,10 @@ class _ArchMaterial:
d["Description"] = val
if d and (d != obj.Material):
obj.Material = d
if FreeCAD.GuiUp:
import FreeCADGui
#if FreeCAD.GuiUp:
#import FreeCADGui
# not sure why this is needed, but it is...
FreeCADGui.ActiveDocument.resetEdit()
#FreeCADGui.ActiveDocument.resetEdit()
def execute(self,obj):
if obj.Material:

View File

@@ -370,6 +370,8 @@ class _Site(ArchFloor._Floor):
obj.addProperty("App::PropertyBool","RemoveSplitter","Site",QT_TRANSLATE_NOOP("App::Property","Remove splitters from the resulting shape"))
if not "OriginOffset" in pl:
obj.addProperty("App::PropertyVector","OriginOffset","Site",QT_TRANSLATE_NOOP("App::Property","An optional offset between the model (0,0,0) origin and the point indicated by the geocoordinates"))
if not "IfcProperties" in pl:
obj.addProperty("App::PropertyMap","IfcProperties","Site",QT_TRANSLATE_NOOP("App::Property","Stores IFC properties"))
if not hasattr(obj,"Group"):
obj.addExtension("App::GroupExtensionPython", self)
self.Type = "Site"