Arch: clean up message printing during IFC import

This commit is contained in:
vocx-fc
2020-08-05 18:02:42 -05:00
committed by Yorik van Havre
parent f5344133ea
commit 6c740d55a1

View File

@@ -47,7 +47,7 @@ import importIFCmulticore
from draftutils.messages import _msg, _err
if FreeCAD.GuiUp:
import FreeCADGui
import FreeCADGui as Gui
__title__ = "FreeCAD IFC importer - Enhanced ifcopenshell-only version"
__author__ = ("Yorik van Havre", "Jonathan Wiedemann", "Bernd Hahnebach")
@@ -156,7 +156,7 @@ def getPreferences():
p = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Arch")
if FreeCAD.GuiUp and p.GetBool("ifcShowDialog", False):
FreeCADGui.showPreferences("Import-Export", 0)
Gui.showPreferences("Import-Export", 0)
preferences = {
'DEBUG': p.GetBool("ifcDebug", False),
@@ -265,7 +265,6 @@ def insert(srcfile, docname, skip=[], only=[], root=None, preferences=None):
doc = FreeCAD.newDocument(docname)
FreeCAD.ActiveDocument = doc
if preferences['DEBUG']: print("done.")
global parametrics
@@ -283,11 +282,15 @@ def insert(srcfile, docname, skip=[], only=[], root=None, preferences=None):
filesize = None
filename = None
else:
if preferences['DEBUG']: print("Opening ", srcfile, "...", end="")
if preferences['DEBUG']:
_msg("Opening '{}'... ".format(srcfile), end="")
filename = importIFCHelper.decode(srcfile, utf=True)
filesize = os.path.getsize(filename) * 1E-6 # in megabytes
ifcfile = ifcopenshell.open(filename)
if preferences['DEBUG']:
_msg("done.")
# Get file scale
ifcscale = importIFCHelper.getScaling(ifcfile)
@@ -309,7 +312,9 @@ def insert(srcfile, docname, skip=[], only=[], root=None, preferences=None):
settings.set(settings.APPLY_LAYERSETS, True)
# build all needed tables
if preferences['DEBUG']: print("Building types and relationships table...", end="")
if preferences['DEBUG']:
_msg("Building types and relationships table...")
# type tables
sites = ifcfile.by_type("IfcSite")
buildings = ifcfile.by_type("IfcBuilding")
@@ -345,7 +350,8 @@ def insert(srcfile, docname, skip=[], only=[], root=None, preferences=None):
mattable = importIFCHelper.buildRelMattable(ifcfile)
colors = importIFCHelper.buildRelProductColors(ifcfile, prodrepr)
colordict = {} # { objname:color tuple } for non-GUI use
if preferences['DEBUG']: print("done.")
if preferences['DEBUG']:
_msg("done.")
# only import a list of IDs and their children, if defined
if only:
@@ -361,14 +367,14 @@ def insert(srcfile, docname, skip=[], only=[], root=None, preferences=None):
count = 0
from FreeCAD import Base
progressbar = Base.ProgressIndicator()
progressbar.start("Importing IFC objects...",len(products))
if preferences['DEBUG']: print("Parsing",len(products),"BIM objects...")
progressbar.start("Importing IFC objects...", len(products))
if preferences['DEBUG']:
_msg("Parsing {} BIM objects...".format(len(products)))
# Prepare the 3D view if applicable
if preferences['FITVIEW_ONIMPORT'] and FreeCAD.GuiUp:
overallboundbox = None
import FreeCADGui
FreeCADGui.ActiveDocument.activeView().viewAxonometric()
Gui.ActiveDocument.activeView().viewAxonometric()
# Create the base project object
if not preferences['REPLACE_PROJECT']:
@@ -531,7 +537,7 @@ def insert(srcfile, docname, skip=[], only=[], root=None, preferences=None):
if not overallboundbox:
overallboundbox = bb
if not overallboundbox.isInside(bb):
FreeCADGui.SendMsgToActiveView("ViewFit")
Gui.SendMsgToActiveView("ViewFit")
overallboundbox.add(bb)
if (preferences['MERGE_MODE_ARCH'] > 0 and archobj) or structobj:
@@ -1347,9 +1353,8 @@ def insert(srcfile, docname, skip=[], only=[], root=None, preferences=None):
FreeCAD.ActiveDocument.recompute()
if ZOOMOUT and FreeCAD.GuiUp:
import FreeCADGui
FreeCADGui.SendMsgToActiveView("ViewFit")
if FreeCAD.GuiUp and ZOOMOUT:
Gui.SendMsgToActiveView("ViewFit")
endtime = time.time()-starttime