Arch: Fixed materials merge in IFC import
This commit is contained in:
parent
4c383527f8
commit
afef89a8ef
|
@ -341,15 +341,7 @@ def insert(filename,docname,skip=[],only=[],root=None):
|
||||||
properties.setdefault(obj.id(),[]).extend([e.id() for e in r.RelatingPropertyDefinition.HasProperties])
|
properties.setdefault(obj.id(),[]).extend([e.id() for e in r.RelatingPropertyDefinition.HasProperties])
|
||||||
for r in ifcfile.by_type("IfcRelAssociatesMaterial"):
|
for r in ifcfile.by_type("IfcRelAssociatesMaterial"):
|
||||||
for o in r.RelatedObjects:
|
for o in r.RelatedObjects:
|
||||||
if MERGE_MATERIALS:
|
mattable[o.id()] = r.RelatingMaterial.id()
|
||||||
for k,v in mattable.items():
|
|
||||||
if ifcfile[v].Name == r.RelatingMaterial.Name:
|
|
||||||
mattable[o.id()] = v
|
|
||||||
break
|
|
||||||
else:
|
|
||||||
mattable[o.id()] = r.RelatingMaterial.id()
|
|
||||||
else:
|
|
||||||
mattable[o.id()] = r.RelatingMaterial.id()
|
|
||||||
for r in ifcfile.by_type("IfcStyledItem"):
|
for r in ifcfile.by_type("IfcStyledItem"):
|
||||||
if r.Styles[0].is_a("IfcPresentationStyleAssignment"):
|
if r.Styles[0].is_a("IfcPresentationStyleAssignment"):
|
||||||
if r.Styles[0].Styles[0].is_a("IfcSurfaceStyle"):
|
if r.Styles[0].Styles[0].is_a("IfcSurfaceStyle"):
|
||||||
|
@ -628,14 +620,19 @@ def insert(filename,docname,skip=[],only=[],root=None):
|
||||||
|
|
||||||
if DEBUG and materials: print "Creating materials..."
|
if DEBUG and materials: print "Creating materials..."
|
||||||
|
|
||||||
|
fcmats = {}
|
||||||
for material in materials:
|
for material in materials:
|
||||||
name = material.Name or "Material"
|
name = material.Name or "Material"
|
||||||
mat = Arch.makeMaterial(name=name)
|
if MERGE_MATERIALS and (name in fcmats.keys()):
|
||||||
mdict = {}
|
mat = fcmats[name]
|
||||||
if material.id() in colors:
|
else:
|
||||||
mdict["Color"] = str(colors[material.id()])
|
mat = Arch.makeMaterial(name=name)
|
||||||
if mdict:
|
mdict = {}
|
||||||
mat.Material = mdict
|
if material.id() in colors:
|
||||||
|
mdict["Color"] = str(colors[material.id()])
|
||||||
|
if mdict:
|
||||||
|
mat.Material = mdict
|
||||||
|
fcmats[name] = mat
|
||||||
for o,m in mattable.items():
|
for o,m in mattable.items():
|
||||||
if m == material.id():
|
if m == material.id():
|
||||||
if o in objects:
|
if o in objects:
|
||||||
|
|
Loading…
Reference in New Issue
Block a user