Arch BIM IFC : Add IFC Properties spreadsheet container

This commit is contained in:
Jonathan Wiedemann 2016-02-20 13:25:26 +01:00
parent 4928624d14
commit 6b7190d3f0

View File

@ -1208,7 +1208,13 @@ class _CommandComponent:
FreeCAD.ActiveDocument.commitTransaction() FreeCAD.ActiveDocument.commitTransaction()
FreeCAD.ActiveDocument.recompute() FreeCAD.ActiveDocument.recompute()
def makeIfcSpreadsheet(obj=None): def makeIfcSpreadsheet(archobj=None):
ifc_container = None
for obj in FreeCAD.ActiveDocument.Objects :
if obj.Name == "IfcPropertiesContainer" :
ifc_container = obj
if not ifc_container :
ifc_container = FreeCAD.ActiveDocument.addObject('App::DocumentObjectGroup','IfcPropertiesContainer')
import Spreadsheet import Spreadsheet
ifc_spreadsheet = FreeCAD.ActiveDocument.addObject('Spreadsheet::Sheet','IfcProperties') ifc_spreadsheet = FreeCAD.ActiveDocument.addObject('Spreadsheet::Sheet','IfcProperties')
ifc_spreadsheet.set('A1', translate("Arch","Category")) ifc_spreadsheet.set('A1', translate("Arch","Category"))
@ -1216,14 +1222,15 @@ def makeIfcSpreadsheet(obj=None):
ifc_spreadsheet.set('C1', translate("Arch","Type")) ifc_spreadsheet.set('C1', translate("Arch","Type"))
ifc_spreadsheet.set('D1', translate("Arch","Value")) ifc_spreadsheet.set('D1', translate("Arch","Value"))
ifc_spreadsheet.set('E1', translate("Arch","Unit")) ifc_spreadsheet.set('E1', translate("Arch","Unit"))
if obj : ifc_container.addObject(ifc_spreadsheet)
if hasattr(obj,"IfcProperties"): if archobj :
obj.IfcProperties = ifc_spreadsheet if hasattr(obj,"IfcProperties") :
archobj.IfcProperties = ifc_spreadsheet
return ifc_spreadsheet return ifc_spreadsheet
else : else :
FreeCAD.Console.PrintWarning(translate("Arch", "The object have not IfcProperties attribute. Cancel spreadsheet creation for object : ") + obj.Label) FreeCAD.Console.PrintWarning(translate("Arch", "The object have not IfcProperties attribute. Cancel spreadsheet creation for object : ") + archobj.Label)
FreeCAD.ActiveDocument.removeObject(ifc_spreadsheet) FreeCAD.ActiveDocument.removeObject(ifc_spreadsheet)
else: else :
return ifc_spreadsheet return ifc_spreadsheet
class _CommandIfcSpreadsheet: class _CommandIfcSpreadsheet: