Skip to content
Permalink
Browse files

Merge branch 'master' into feature/misc-improvements

  • Loading branch information...
sliptonic committed Aug 16, 2019
2 parents 1800f29 + 64b4bb0 commit 2cb77a28f49b849aaf9154729a05a4b4394eaa36
Showing with 15,237 additions and 3,907 deletions.
  1. +1 −2 src/Gui/View3DInventorViewer.h
  2. +22 −0 src/Gui/View3DPy.cpp
  3. +1 −0 src/Gui/View3DPy.h
  4. +5 −2 src/Mod/AddonManager/Resources/AddonManager.qrc
  5. 0 src/Mod/AddonManager/Resources/icons/{A2plus_workbench-icon.svg → A2plus_workbench_icon.svg}
  6. +84 −0 src/Mod/AddonManager/Resources/icons/CADExchanger_workbench_icon.svg
  7. +169 −0 src/Mod/AddonManager/Resources/icons/Reinforcement_workbench_icon.svg
  8. +83 −0 src/Mod/AddonManager/Resources/icons/ThreadProfile_workbench_icon.svg
  9. +4 −3 src/Mod/AddonManager/addonmanager_workers.py
  10. +1 −0 src/Mod/Arch/Arch.py
  11. +29 −15 src/Mod/Arch/ArchBuildingPart.py
  12. +2 −2 src/Mod/Arch/ArchCommands.py
  13. +17 −17 src/Mod/Arch/ArchComponent.py
  14. +3 −0 src/Mod/Arch/ArchFence.py
  15. +4 −6 src/Mod/Arch/ArchFloor.py
  16. +176 −172 src/Mod/Arch/ArchIFC.py
  17. +4 −0 src/Mod/Arch/ArchIFCSchema.py
  18. +71 −0 src/Mod/Arch/ArchIFCView.py
  19. +10 −0 src/Mod/Arch/ArchPanel.py
  20. +126 −0 src/Mod/Arch/ArchProject.py
  21. +1 −1 src/Mod/Arch/ArchSectionPlane.py
  22. +3 −4 src/Mod/Arch/ArchSite.py
  23. +5 −0 src/Mod/Arch/ArchStructure.py
  24. +17 −10 src/Mod/Arch/ArchWall.py
  25. +5 −0 src/Mod/Arch/CMakeLists.txt
  26. +1 −4 src/Mod/Arch/InitGui.py
  27. +146 −0 src/Mod/Arch/Presets/ifc_contexts_IFC4.json
  28. +11,132 −2,187 src/Mod/Arch/Presets/ifc_products_IFC4.json
  29. +2 −0 src/Mod/Arch/Resources/Arch.qrc
  30. +423 −0 src/Mod/Arch/Resources/icons/Arch_Project.svg
  31. +435 −0 src/Mod/Arch/Resources/icons/Arch_Project_Tree.svg
  32. +14 −1 src/Mod/Arch/Resources/ui/preferences-arch.ui
  33. +15 −12 src/Mod/Arch/exportIFC.py
  34. +141 −0 src/Mod/Arch/exportIFCHelper.py
  35. +80 −70 src/Mod/Arch/importIFC.py
  36. +70 −0 src/Mod/Arch/importIFCHelper.py
  37. +146 −153 src/Mod/Draft/Draft.py
  38. +19 −5 src/Mod/Draft/DraftEdit.py
  39. +43 −46 src/Mod/Draft/DraftGui.py
  40. +10 −40 src/Mod/Draft/DraftLayer.py
  41. +136 −131 src/Mod/Draft/DraftTools.py
  42. +54 −54 src/Mod/Draft/DraftTrackers.py
  43. +2 −2 src/Mod/Draft/DraftVecUtils.py
  44. +0 −4 src/Mod/Draft/InitGui.py
  45. +88 −55 src/Mod/Draft/WorkingPlane.py
  46. +191 −60 src/Mod/Draft/importDWG.py
  47. +1 −84 src/Mod/Draft/importSVG.py
  48. +1 −1 src/Mod/Fem/Init.py
  49. +2 −1 src/Mod/Fem/InitGui.py
  50. +110 −110 src/Mod/Fem/ObjectsFem.py
  51. +2 −2 src/Mod/Fem/TestFem.py
  52. +264 −225 src/Mod/Fem/femcommands/commands.py
  53. +306 −271 src/Mod/Fem/femcommands/manager.py
  54. +21 −9 src/Mod/Fem/femtools/ccxtools.py
  55. +11 −2 src/Mod/Path/PathScripts/PathCircularHoleBase.py
  56. +8 −13 src/Mod/TechDraw/Gui/QGIArrow.cpp
  57. +6 −3 src/Mod/TechDraw/Gui/QGIArrow.h
  58. +480 −124 src/Mod/TechDraw/Gui/QGIViewDimension.cpp
  59. +26 −0 src/Mod/TechDraw/Gui/QGIViewDimension.h
  60. +6 −3 src/Mod/TechDraw/Gui/ViewProviderDimension.cpp
  61. +2 −1 src/Mod/TechDraw/Gui/ViewProviderDimension.h
@@ -379,7 +379,7 @@ class GuiExport View3DInventorViewer : public Quarter::SoQTQuarterAdaptor, publi

enum eWinGestureTuneState{
ewgtsDisabled, //suppress tuning/re-tuning after errors
ewgtsNeedTuning, //gestures are to be retuned upon next event
ewgtsNeedTuning, //gestures are to be re-tuned upon next event
ewgtsTuned
};
eWinGestureTuneState winGestureTuneState;//See ViewerEventFilter::eventFilter function for explanation
@@ -458,4 +458,3 @@ class GuiExport View3DInventorViewer : public Quarter::SoQTQuarterAdaptor, publi
} // namespace Gui

#endif // GUI_VIEW3DINVENTORVIEWER_H

@@ -182,6 +182,7 @@ void View3DInventorPy::init_type()
add_varargs_method("getActiveObject", &View3DInventorPy::getActiveObject, "getActiveObject(name)\nreturns the active object for the given type");
add_varargs_method("getViewProvidersOfType", &View3DInventorPy::getViewProvidersOfType, "getViewProvidersOfType(name)\nreturns a list of view providers for the given type");
add_varargs_method("redraw", &View3DInventorPy::redraw, "redraw(): renders the scene on screen (useful for animations)");
add_varargs_method("setName",&View3DInventorPy::setName,"setName(str): sets a name to this viewer\nThe name sets the widget's windowTitle and appears on the viewer tab");

}

@@ -2451,3 +2452,24 @@ Py::Object View3DInventorPy::redraw(const Py::Tuple& args)
_view->getViewer()->redraw();
return Py::None();
}

Py::Object View3DInventorPy::setName(const Py::Tuple& args)
{
char* buffer;
if (!PyArg_ParseTuple(args.ptr(), "s", &buffer))
throw Py::Exception();

try {
_view->setWindowTitle(QString::fromUtf8(buffer));
return Py::None();
}
catch (const Base::Exception& e) {
throw Py::RuntimeError(e.what());
}
catch (const std::exception& e) {
throw Py::RuntimeError(e.what());
}
catch(...) {
throw Py::RuntimeError("Unknown C++ exception");
}
}
@@ -129,6 +129,7 @@ class View3DInventorPy : public Py::PythonExtension<View3DInventorPy>
Py::Object getActiveObject(const Py::Tuple&);
Py::Object getViewProvidersOfType(const Py::Tuple&);
Py::Object redraw(const Py::Tuple&);
Py::Object setName(const Py::Tuple&);

private:
static void eventCallback(void * ud, SoEventCallback * n);
@@ -2,11 +2,12 @@
<qresource>
<file>icons/3D_Printing_Tools_workbench_icon.svg</file>
<file>icons/A2plus_workbench_icon.svg</file>
<file>icons/AirPlaneDesign_workbench-icon.svg</file>
<file>icons/AirPlaneDesign_workbench_icon.svg</file>
<file>icons/ArchTextures_workbench_icon.svg</file>
<file>icons/BIMBots_workbench_icon.svg</file>
<file>icons/BIM_workbench_icon.svg</file>
<file>icons/BOLTSFC_workbench_icon.svg</file>
<file>icons/CADExchanger_workbench_icon.svg</file>
<file>icons/cadquery_module_workbench_icon.svg</file>
<file>icons/CfdOF_workbench_icon.svg</file>
<file>icons/CurvedShapes_workbench_icon.svg</file>
@@ -24,19 +25,21 @@
<file>icons/InventorLoader_workbench_icon.svg</file>
<file>icons/kicadStepUpMod_workbench_icon.svg</file>
<file>icons/lattice2_workbench_icon.svg</file>
<file>icons/LCInterlocking_workbench_icon.svg</file>
<file>icons/LCInterlocking_workbench_icon.svg</file>
<file>icons/Lithophane_workbench_icon.svg</file>
<file>icons/Manipulator_workbench_icon.svg</file>
<file>icons/MOOC_workbench_icon.svg</file>
<file>icons/Part-o-magic_workbench_icon.svg</file>
<file>icons/Plot_workbench_icon.svg</file>
<file>icons/pyrate_workbench_icon.svg</file>
<file>icons/Reinforcement_workbench_icon.svg</file>
<file>icons/Reporting_workbench_icon.svg</file>
<file>icons/Render_workbench_icon.svg</file>
<file>icons/sheetmetal_workbench_icon.svg</file>
<file>icons/slic3r-tools_workbench_icon.svg</file>
<file>icons/Ship_workbench_icon.svg</file>
<file>icons/timber_workbench_icon.svg</file>
<file>icons/ThreadProfile_workbench_icon.svg</file>
<file>icons/yaml-workspace_workbench_icon.svg</file>
<file>translations/AddonManager_af.qm</file>
<file>translations/AddonManager_ar.qm</file>

Large diffs are not rendered by default.

Large diffs are not rendered by default.

@@ -0,0 +1,83 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->

<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64"
height="64"
viewBox="0 0 16.933333 16.933334"
version="1.1"
id="svg8"
sodipodi:docname="ThreadProfileSVGLogo.svg"
inkscape:version="0.92.3 (2405546, 2018-03-11)">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.979899"
inkscape:cx="-166.53392"
inkscape:cy="68.194187"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1920"
inkscape:window-height="1001"
inkscape:window-x="1791"
inkscape:window-y="-9"
inkscape:window-maximized="1"
units="px" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-280.06665)">
<image
y="280.21786"
x="0.60476506"
id="image4537"
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAIAAAAlC+aJAAAAA3NCSVQICAjb4U/gAAAEmUlEQVRo ge1az2vjRhiVvT0VSi67IOjKgeaQxRPQMZHZQntZJ9eS0R4CNbS3diFkDblapodCim32D0hLiy8Z 5bQ9+VSoidWEUFiQHJI2FNkpCBwIXkKPcQ+yFc9oRh4pcWyB32kszzfznma+HzN2otfrCXFGctIE 7oqZgEnjg2hmmqa5jbm5uTsy6Ha7xJihEPsVmAmYNBLR8kClUnEbqVTqjgxarZbbSCYpb/Pm5sZr ZzIZt7G8vOw9jP0KzARMGhHzwDiwuLgY3GFhYcH/MPYrMBMwaWA+cHh46DYajYb3kBqex4HV1dUI VrFfgZmASQPzAS/QXl1dBZudnJyMi1FIxH4FsGr08vLSbRwfHwebra2t0b9Q8vt5JRQDrxp99Kjz 548//fzOoXSCqIcg1TzKCrx4v5uTxQiGwXgl/kVnHwjMB7zie+QhIcJMY8J0+UCEhY0ioPbRV+PY Qm/+zdx1C/FDzm2XBUEQhFTij60t1I42ig/lsjuqsPXifWpJ4xkWE3B+fu42zs7OvIeJRIKwGdN1 ajKZHD4B81qNg8pDIvYCpuhIubm5efvBKnL6FSZAUfpJdGVlxXvo3/HJZNK7FxIE4b48OBpiv4Wm SoAVwSaKACLYSRGGoAMwP7CB+cDBwYHbODo68h4+2Jk4GqaaHA9mAiYNzAe828nr62u3Yder1d/r rZZt24NO8/PzQurZs0/kbPSKtG0g1DAuLtptL4mI4u6uASFcL0BO96UIGIJdr1ar1bpN+ca2Bdu2 67WaIIryxsaIG1k/c4QMSu5zHMvRLUvXNAEAWCjwqqCdiU/ffrHxNY07BwLOxG2jVC7RuHOAfSb2 rcDpD8+f75xGmiUIbXSPx4ZhYAIeP/5NfUKyBwAW9goQ9NfUsvT9YlHTQ2VNo+RjL0mK+lpVJMm9 lXCcdx/+cxxyWEEgopCuqjpOHiLTNJHHXnD1ILO8nZND0C8ZOHklX6lU8op0m8RFUS4gs2cyNgob QwJI+kAzTcQKCaKcK/NpIOlLaqWSVxj1B2BvdgZuBeg6QX9vVCSQcxwSjAZB/7U6oniCKIwETwDB ny+QydlRbAj+ijrKwJ1c484FAwEkf8j3EkSFtRlckPwzfNeOYJ07m9FLCQDSnPaS9JSzZ6jOIM1L gC4gneZewqcS/3kgRN804GRAF9BscsfjizZ/egrRt2lxMhgIwBVbVpNzonb7Iuhr/J2P6DxMoMlL YCCA2HSETzPhGMHFDbHrCZ9mwtrnTsneFiLiji8p0+DUfhlV3xBxx5eUabCKLzXuLXzrA2Tw1dUl lfkeut3u32+/36n5LpP/u2zh+PjTLHZsMEqvvvv1aKhDd4AB+6UlfvpEOU0zBlArFNaHqiHLsprF z7/VO53AgUU592X/Et6p7fikinI2m5VlURz86a/TgZ91Xhb1Ec4LINrD65seDmbxw4CczTLPZXKu PEDY3xOgxs7FEA0TJsMoRKbJm8efpOE3nEWpnNveZivFASAy0TpfX8G3An3gJTR1Fs10ezLkAojM hxiWIaA/n4k0CAE2JwBQo1ALg3sdNuK/FqcHsb8X+h/s/sbLpcJe1gAAAABJRU5ErkJggg== "
style="image-rendering:optimizeQuality"
preserveAspectRatio="none"
height="16.933332"
width="16.933332" />
<image
y="280.21786"
x="0.60476506"
id="image835"
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAIAAAAlC+aJAAAAA3NCSVQICAjb4U/gAAAA+ElEQVRo
ge2ZQQ6EIBAExfgtXu/D9MDG7ALiqISCTdfFCyRdIUAb3LZt08jMdIC3SIBGAjQSoJEAjQRoJEAj
ARoJ0EiARgI0EqCRAI0EaCRAIwGaJXyOVwLnHBfmCcOvgARonN7IYCRAIwEaCdBIgGZ5PLNKb33f
A66rBFKw7WKnApbc67reCJXgvbcMK8vEAtncL4M+IHIrOPwIROnb5075NslquPRnsofcEYdG6vA5
RntOPxVTzcZx3TL8RfYvAmFzGA/m9oRg2VMoXoEOHcqRSvdAANnZaejTxmC5ibNUEbMs+L0qkRkx
aJm7mFbJqkWd7pzh74EdgqxnCcySe50AAAAASUVORK5CYII=
"
style="image-rendering:optimizeQuality"
preserveAspectRatio="none"
height="16.933332"
width="16.933332" />
</g>
</svg>
@@ -91,10 +91,11 @@ def run(self):
if url:
addondir = moddir + os.sep + name
#print ("found:",name," at ",url)
if not os.path.exists(addondir):
state = 0
else:
if os.path.exists(addondir) and os.listdir(addondir):
# make sure the folder exists and it contains files!
state = 1
else:
state = 0
repos.append([name,url,state])
# querying custom addons
customaddons = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Addons").GetString("CustomRepositories","").split("\n")
@@ -43,6 +43,7 @@
from ArchWall import *
from ArchFloor import *
from ArchFence import *
from ArchProject import *
from ArchSite import *
from ArchBuilding import *
from ArchStructure import *
@@ -313,7 +313,7 @@ def Activated(self):



class BuildingPart:
class BuildingPart(ArchIFC.IfcProduct):


"The BuildingPart object"
@@ -326,7 +326,7 @@ def __init__(self,obj):
self.setProperties(obj)

def setProperties(self,obj):
ArchIFC.setProperties(obj)
ArchIFC.IfcProduct.setProperties(self, obj)

pl = obj.PropertiesList
if not "Height" in pl:
@@ -366,7 +366,7 @@ def onBeforeChange(self,obj,prop):

def onChanged(self,obj,prop):

ArchIFC.onChanged(obj, prop)
ArchIFC.IfcProduct.onChanged(self, obj, prop)

if prop == "Height":
for child in obj.Group:
@@ -483,28 +483,42 @@ def setProperties(self,vobj):
vobj.ShowLevel = True
if not "ShowUnit" in pl:
vobj.addProperty("App::PropertyBool","ShowUnit","BuildingPart",QT_TRANSLATE_NOOP("App::Property","If true, show the unit on the level tag"))
if not "SetWorkingPlane" in pl:
vobj.addProperty("App::PropertyBool","SetWorkingPlane","BuildingPart",QT_TRANSLATE_NOOP("App::Property","If true, when activated, the working plane will automatically adapt to this level"))
vobj.SetWorkingPlane = True
if not "OriginOffset" in pl:
vobj.addProperty("App::PropertyBool","OriginOffset","BuildingPart",QT_TRANSLATE_NOOP("App::Property","If true, when activated, Display offset will affect the origin mark too"))
vobj.addProperty("App::PropertyBool","OriginOffset","BuildingPart",QT_TRANSLATE_NOOP("App::Property","If true, display offset will affect the origin mark too"))
if not "ShowLabel" in pl:
vobj.addProperty("App::PropertyBool","ShowLabel","BuildingPart",QT_TRANSLATE_NOOP("App::Property","If true, when activated, the object's label is displayed"))
vobj.addProperty("App::PropertyBool","ShowLabel","BuildingPart",QT_TRANSLATE_NOOP("App::Property","If true, the object's label is displayed"))
vobj.ShowLabel = True
if not "FontName" in pl:
vobj.addProperty("App::PropertyFont","FontName","BuildingPart",QT_TRANSLATE_NOOP("App::Property","The font to be used for texts"))
vobj.FontName = Draft.getParam("textfont","Arial")
if not "FontSize" in pl:
vobj.addProperty("App::PropertyLength","FontSize","BuildingPart",QT_TRANSLATE_NOOP("App::Property","The font size of texts"))
vobj.FontSize = Draft.getParam("textheight",2.0)
if not "ViewData" in pl:
vobj.addProperty("App::PropertyFloatList","ViewData","BuildingPart",QT_TRANSLATE_NOOP("App::Property","Camera position data associated with this object"))
if not "RestoreView" in pl:
vobj.addProperty("App::PropertyBool","RestoreView","BuildingPart",QT_TRANSLATE_NOOP("App::Property","If set, the view stored in this object will be restored on double-click"))
if not "DiffuseColor" in pl:
vobj.addProperty("App::PropertyColorList","DiffuseColor","BuildingPart",QT_TRANSLATE_NOOP("App::Property","The individual face colors"))

# Interaction properties
if not "SetWorkingPlane" in pl:
vobj.addProperty("App::PropertyBool","SetWorkingPlane","Interaction",QT_TRANSLATE_NOOP("App::Property","If true, when activated, the working plane will automatically adapt to this level"))
vobj.SetWorkingPlane = True
if not "AutoWorkingPlane" in pl:
vobj.addProperty("App::PropertyBool","AutoWorkingPlane","BuildingPart",QT_TRANSLATE_NOOP("App::Property","If set to True, the working plane will be kept on Auto mode"))
vobj.addProperty("App::PropertyBool","AutoWorkingPlane","Interaction",QT_TRANSLATE_NOOP("App::Property","If set to True, the working plane will be kept on Auto mode"))
if not "ViewData" in pl:
vobj.addProperty("App::PropertyFloatList","ViewData","Interaction",QT_TRANSLATE_NOOP("App::Property","Camera position data associated with this object"))
vobj.setEditorMode("ViewData",2)
if not "RestoreView" in pl:
vobj.addProperty("App::PropertyBool","RestoreView","Interaction",QT_TRANSLATE_NOOP("App::Property","If set, the view stored in this object will be restored on double-click"))
if not "DoubleClickActivates" in pl:
vobj.addProperty("App::PropertyBool","DoubleClickActivates","Interaction",QT_TRANSLATE_NOOP("App::Property","If True, double-clicking this object in the tree turns it active"))

# inventor saving
if not "SaveInventor" in pl:
vobj.addProperty("App::PropertyBool","SaveInventor","Interaction",QT_TRANSLATE_NOOP("App::Property","If this is enabled, the inventor representation of this object will be saved in the FreeCAD file, allowing to reference it in other file sin lightweight mode."))
if not "SavedInventor" in pl:
vobj.addProperty("App::PropertyFileIncluded","SavedInventor","Interaction",QT_TRANSLATE_NOOP("App::Property","A slot to save the inventor representation of this object, if enabled"))
vobj.setEditorMode("SavedInventor",2)

# children properties
if not "ChildrenOverride" in pl:
vobj.addProperty("App::PropertyBool","ChildrenOverride","Children",QT_TRANSLATE_NOOP("App::Property","If true, show the objects contained in this Building Part will adopt these line, color and transparency settings"))
if not "ChildrenLineWidth" in pl:
@@ -520,15 +534,15 @@ def setProperties(self,vobj):
vobj.ChildrenLineColor = (float((c>>24)&0xFF)/255.0,float((c>>16)&0xFF)/255.0,float((c>>8)&0xFF)/255.0,0.0)
if not "ChildrenTransparency" in pl:
vobj.addProperty("App::PropertyPercent","ChildrenTransparency","Children",QT_TRANSLATE_NOOP("App::Property","The transparency of child objects"))

# clip properties
if not "CutView" in pl:
vobj.addProperty("App::PropertyBool","CutView","Clip",QT_TRANSLATE_NOOP("App::Property","Cut the view above this level"))
if not "CutMargin" in pl:
vobj.addProperty("App::PropertyLength","CutMargin","Clip",QT_TRANSLATE_NOOP("App::Property","The distance between the level plane and the cut line"))
vobj.CutMargin = 1600
if not "AutoCutView" in pl:
vobj.addProperty("App::PropertyBool","AutoCutView","Clip",QT_TRANSLATE_NOOP("App::Property","Turn cutting on when activating this level"))
if not "SaveInventor" in pl:
vobj.addProperty("App::PropertyBool","SaveInventor","BuildingPart",QT_TRANSLATE_NOOP("App::Property","If this is enabled, the inventor representation of this object will be saved in the FreeCAD file, allowing to reference it in other file sin lightweight mode."))

def onDocumentRestored(self,vobj):

@@ -116,7 +116,7 @@ def addComponents(objectsList,host):
if not isinstance(objectsList,list):
objectsList = [objectsList]
hostType = Draft.getType(host)
if hostType in ["Floor","Building","Site","BuildingPart"]:
if hostType in ["Floor","Building","Site","Project","BuildingPart"]:
for o in objectsList:
host.addObject(o)
elif hostType in ["Wall","Structure","Window","Roof","Stairs","StructuralSystem","Panel","Component"]:
@@ -744,7 +744,7 @@ def pruneIncluded(objectslist,strict=False):
if obj.isDerivedFrom("Part::Feature"):
if not (Draft.getType(obj) in ["Window","Clone","Pipe","Rebar"]):
for parent in obj.InList:
if parent.isDerivedFrom("Part::Feature") and not (Draft.getType(parent) in ["Space","Facebinder","Window","Roof","Clone","Site"]):
if parent.isDerivedFrom("Part::Feature") and not (Draft.getType(parent) in ["Space","Facebinder","Window","Roof","Clone","Site","Project"]):
if not parent.isDerivedFrom("Part::Part2DObject"):
# don't consider 2D objects based on arch elements
if hasattr(parent,"Host") and (parent.Host == obj):

0 comments on commit 2cb77a2

Please sign in to comment.
You can’t perform that action at this time.