diff --git a/src/Mod/Arch/CMakeLists.txt b/src/Mod/Arch/CMakeLists.txt index bb81f96930..1590047d71 100644 --- a/src/Mod/Arch/CMakeLists.txt +++ b/src/Mod/Arch/CMakeLists.txt @@ -59,6 +59,8 @@ SET(Arch_SRCS ArchCurtainWall.py importSHP.py exportIFCStructuralTools.py + ifc_objects.py + ifc_viewproviders.py ) SET(Dice3DS_SRCS diff --git a/src/Mod/Arch/ifc_objects.py b/src/Mod/Arch/ifc_objects.py new file mode 100644 index 0000000000..6aa6a871fc --- /dev/null +++ b/src/Mod/Arch/ifc_objects.py @@ -0,0 +1,33 @@ +#*************************************************************************** +#* * +#* Copyright (c) 2022 Yorik van Havre * +#* * +#* This program is free software; you can redistribute it and/or modify * +#* it under the terms of the GNU General Public License (GPL) * +#* as published by the Free Software Foundation; either version 3 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * +#* License along with this program; if not, write to the Free Software * +#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * +#* USA * +#* * +#*************************************************************************** + +class ifc_object: + """NativeIFC class placeholder""" + def __init__(self): + pass + def onDocumentRestored(self, obj): + obj.Type = [obj.IfcType] + obj.Type = obj.IfcType + def __getstate__(self): + return None + def __setstate__(self, state): + return None diff --git a/src/Mod/Arch/ifc_viewproviders.py b/src/Mod/Arch/ifc_viewproviders.py new file mode 100644 index 0000000000..d014626100 --- /dev/null +++ b/src/Mod/Arch/ifc_viewproviders.py @@ -0,0 +1,48 @@ +#*************************************************************************** +#* * +#* Copyright (c) 2022 Yorik van Havre * +#* * +#* This program is free software; you can redistribute it and/or modify * +#* it under the terms of the GNU General Public License (GPL) * +#* as published by the Free Software Foundation; either version 3 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * +#* License along with this program; if not, write to the Free Software * +#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * +#* USA * +#* * +#*************************************************************************** + +import FreeCAD + +class ifc_vp_object: + """NativeIFC class placeholder""" + def __init__(self): + pass + def attach(self, vobj): + return + def getDisplayModes(self, obj): + return [] + def getDefaultDisplayMode(self): + return "FlatLines" + def setDisplayMode(self,mode): + return mode + def __getstate__(self): + return None + def __setstate__(self, state): + return None + +class ifc_vp_document(ifc_vp_object): + """NativeIFC class placeholder""" + def __init__(self): + pass + def attach(self, vobj): + FreeCAD.Console.PrintWarning("Warning: Object "+vobj.Object.Label+" depends on the NativeIFC addon which is not installed, and will not display correctly in the 3D view\n") + return