Fix #1574. Fix #1578. Bug where deprecated functions were used in Python 3.9 for drawing generation.

This commit is contained in:
Dion Moult
2021-07-22 20:41:40 +10:00
parent f2f4057c98
commit d2a1e0193b
3 changed files with 6 additions and 9 deletions
@@ -28,7 +28,7 @@ class External(svgwrite.container.Group):
# Remove namespace
ns = u"{http://www.w3.org/2000/svg}"
nsl = len(ns)
for elem in self.xml.getiterator():
for elem in self.xml.iter():
if elem.tag.startswith(ns):
elem.tag = elem.tag[nsl:]
@@ -85,19 +85,19 @@ class SvgWriter:
def add_markers(self):
tree = ET.parse(os.path.join(self.data_dir, "templates", "markers.svg"))
root = tree.getroot()
for child in root.getchildren():
for child in root:
self.svg.defs.add(External(child))
def add_symbols(self):
tree = ET.parse(os.path.join(self.data_dir, "templates", "symbols.svg"))
root = tree.getroot()
for child in root.getchildren():
for child in root:
self.svg.defs.add(External(child))
def add_patterns(self):
tree = ET.parse(os.path.join(self.data_dir, "templates", "patterns.svg"))
root = tree.getroot()
for child in root.getchildren():
for child in root:
self.svg.defs.add(External(child))
def draw_background_image(self):
@@ -5,9 +5,6 @@ import json
import logging
import webbrowser
import ifcopenshell
# Deleting the below drawing import breaks svgwrite's ElementTree appending because ... magic?
import blenderbim.bim.module.drawing
from . import export_ifc
from . import import_ifc
from . import schema
@@ -204,12 +204,12 @@ class Usecase:
def create_variable_representation(self):
if isinstance(self.settings["geometry"], bpy.types.Curve):
return self.create_curve3d_representation()
elif isinstance(self.settings["geometry"], bpy.types.Camera):
return self.create_camera_block_representation()
elif not len(self.settings["geometry"].polygons):
return self.create_curve3d_representation()
elif self.settings["is_point_cloud"]:
return self.create_point_cloud_representation()
elif isinstance(self.settings["geometry"], bpy.types.Camera):
return self.create_camera_block_representation()
elif self.settings["ifc_representation_class"] == "IfcExtrudedAreaSolid/IfcRectangleProfileDef":
return self.create_rectangle_extrusion_representation()
elif self.settings["ifc_representation_class"] == "IfcExtrudedAreaSolid/IfcCircleProfileDef":