Override Ctrl-N new file menu to make it easier to start new projects and new IFC icon.

This commit is contained in:
Dion Moult
2023-07-10 17:16:20 +10:00
parent f4a4e906ab
commit 717c28b7c9
7 changed files with 199 additions and 23 deletions
+23
View File
@@ -16,11 +16,15 @@
# You should have received a copy of the GNU General Public License
# along with BlenderBIM Add-on. If not, see <http://www.gnu.org/licenses/>.
import os
import bpy
import bpy.utils.previews
import blenderbim
import importlib
from . import handler, ui, prop, operator, helper
cwd = os.path.dirname(os.path.realpath(__file__))
modules = {
"project": None,
"search": None,
@@ -143,6 +147,9 @@ for mod in modules.values():
classes.extend(mod.classes)
icons = None
def on_register(scene):
handler.setDefaultProperties(scene)
if not bpy.app.background:
@@ -177,8 +184,24 @@ def register():
for mod in modules.values():
mod.register()
global icons
icons_dir = os.path.join(cwd, "data", "icons")
icon_preview = bpy.utils.previews.new()
for filename in os.listdir(icons_dir):
if filename.endswith(".png"):
icon_name = os.path.splitext(filename)[0]
icon_path = os.path.join(icons_dir, filename)
icon_preview.load(icon_name, icon_path, "IMAGE")
icons = icon_preview
def unregister():
global icons
bpy.utils.previews.remove(icons)
for cls in reversed(classes):
if getattr(cls, "is_registered", None) is None:
bpy.utils.unregister_class(cls)
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

@@ -74,25 +74,38 @@ def register():
if wm.keyconfigs.addon:
km = wm.keyconfigs.addon.keymaps.new(name="Object Mode", space_type="EMPTY")
kmi = km.keymap_items.new("bim.override_object_join", "J", "PRESS", ctrl=True)
addon_keymaps.append((km, kmi))
kmi = km.keymap_items.new("bim.override_object_duplicate_move_macro", "D", "PRESS", shift=True)
addon_keymaps.append((km, kmi))
kmi = km.keymap_items.new("bim.override_object_duplicate_move_linked_macro", "D", "PRESS", alt=True)
addon_keymaps.append((km, kmi))
kmi = km.keymap_items.new("bim.override_object_duplicate_move_aggregate_macro", "D", "PRESS", ctrl=True, shift=True)
addon_keymaps.append((km, kmi))
kmi = km.keymap_items.new("bim.override_paste_buffer", "V", "PRESS", ctrl=True)
addon_keymaps.append((km, kmi))
kmi = km.keymap_items.new("bim.override_mode_set_edit", "TAB", "PRESS")
addon_keymaps.append((km, kmi))
kmi = km.keymap_items.new("bim.override_object_delete", "X", "PRESS")
addon_keymaps.append((km, kmi))
kmi = km.keymap_items.new("bim.override_object_delete", "DEL", "PRESS")
kmi.properties.confirm = False
addon_keymaps.append((km, kmi))
km = wm.keyconfigs.addon.keymaps.new(name="Mesh", space_type="EMPTY")
kmi = km.keymap_items.new("bim.override_mode_set_object", "TAB", "PRESS")
addon_keymaps.append((km, kmi))
km = wm.keyconfigs.addon.keymaps.new(name="Curve", space_type="EMPTY")
kmi = km.keymap_items.new("bim.override_mode_set_object", "TAB", "PRESS")
addon_keymaps.append((km, kmi))
km = wm.keyconfigs.addon.keymaps.new(name="Outliner", space_type="OUTLINER")
kmi = km.keymap_items.new("bim.override_paste_buffer", "V", "PRESS", ctrl=True)
addon_keymaps.append((km, kmi))
kmi = km.keymap_items.new("bim.override_outliner_delete", "X", "PRESS")
addon_keymaps.append((km, kmi))
kmi = km.keymap_items.new("bim.override_outliner_delete", "DEL", "PRESS")
addon_keymaps.append((km, kmi))
def unregister():
@@ -49,6 +49,7 @@ classes = (
prop.FilterCategory,
prop.Link,
prop.BIMProjectProperties,
ui.BIM_MT_new_project,
ui.BIM_MT_project,
ui.BIM_PT_project,
ui.BIM_PT_project_library,
@@ -59,11 +60,28 @@ classes = (
)
addon_keymaps = []
def register():
bpy.types.Scene.BIMProjectProperties = bpy.props.PointerProperty(type=prop.BIMProjectProperties)
bpy.types.TOPBAR_MT_file.prepend(ui.file_menu)
wm = bpy.context.window_manager
if wm.keyconfigs.addon:
km = wm.keyconfigs.addon.keymaps.get("Window")
if not km:
km = wm.keyconfigs.addon.keymaps.new("Window")
kmi = km.keymap_items.new("wm.call_menu", "N", "PRESS", ctrl=True)
kmi.properties.name = "BIM_MT_new_project"
addon_keymaps.append((km, kmi))
def unregister():
bpy.types.TOPBAR_MT_file.remove(ui.file_menu)
del bpy.types.Scene.BIMProjectProperties
wm = bpy.context.window_manager
kc = wm.keyconfigs.addon
if kc:
for km, kmi in addon_keymaps:
km.keymap_items.remove(kmi)
addon_keymaps.clear()
@@ -17,6 +17,7 @@
# along with BlenderBIM Add-on. If not, see <http://www.gnu.org/licenses/>.
import os
import blenderbim.bim
from blenderbim.bim.helper import prop_with_search
from bpy.types import Panel, Menu, UIList
from blenderbim.bim.ifc import IfcStore
@@ -28,12 +29,32 @@ class BIM_MT_project(Menu):
bl_label = "New IFC Project"
def draw(self, context):
layout = self.layout
layout.operator("bim.new_project", text="New Metric (m) Project").preset = "metric_m"
layout.operator("bim.new_project", text="New Metric (mm) Project").preset = "metric_mm"
layout.operator("bim.new_project", text="New Imperial (ft) Project").preset = "imperial_ft"
layout.operator("bim.new_project", text="New Demo Project").preset = "demo"
layout.operator("bim.new_project", text="New Project Wizard").preset = "wizard"
self.layout.operator("bim.new_project", text="New Metric (m) Project").preset = "metric_m"
self.layout.operator("bim.new_project", text="New Metric (mm) Project").preset = "metric_mm"
self.layout.operator("bim.new_project", text="New Imperial (ft) Project").preset = "imperial_ft"
self.layout.operator("bim.new_project", text="New Demo Project").preset = "demo"
self.layout.operator("bim.new_project", text="New Project Wizard").preset = "wizard"
class BIM_MT_new_project(Menu):
bl_idname = "BIM_MT_new_project"
bl_label = "New Project"
def draw(self, context):
self.layout.label(text="New IFC Project", icon_value=blenderbim.bim.icons["IFC"].icon_id)
self.layout.operator("bim.new_project", text="Metric (m) Project").preset = "metric_m"
self.layout.operator("bim.new_project", text="Metric (mm) Project").preset = "metric_mm"
self.layout.operator("bim.new_project", text="Imperial (ft) Project").preset = "imperial_ft"
self.layout.operator("bim.new_project", text="Demo Project").preset = "demo"
self.layout.operator("bim.new_project", text="Project Wizard").preset = "wizard"
self.layout.separator()
self.layout.label(text="New Blender Project", icon="BLENDER")
# In theory we can dynamically grab the list from list(bpy.utils.app_template_paths())
self.layout.operator("wm.read_homefile", text="General Project").app_template = ""
self.layout.operator("wm.read_homefile", text="2D Animation Project").app_template = "2D_Animation"
self.layout.operator("wm.read_homefile", text="Sculpting Project").app_template = "Sculpting"
self.layout.operator("wm.read_homefile", text="VFX Project").app_template = "VFX"
self.layout.operator("wm.read_homefile", text="Video Editing Project").app_template = "Video_Editing"
def file_menu(self, context):
@@ -205,7 +226,7 @@ class BIM_PT_project(Panel):
row = self.layout.row(align=True)
row.operator("bim.create_project")
row.operator("bim.load_project").should_start_fresh_session = False
row.operator("bim.load_project").should_start_fresh_session = True
class BIM_PT_project_library(Panel):
+17 -16
View File
@@ -30,8 +30,9 @@ from ifcopenshell.util.doc import (
get_property_doc,
get_predefined_type_doc,
)
import blenderbim.bim.handler
import blenderbim.bim
import blenderbim.bim.schema
import blenderbim.bim.handler
from blenderbim.bim.ifc import IfcStore
import blenderbim.tool as tool
from collections import defaultdict
@@ -335,22 +336,22 @@ class ModuleVisibility(PropertyGroup):
is_visible: BoolProperty(name="Value", default=True, update=update_is_visible)
def get_tab(self, context):
return [
("PROJECT", "Project Overview", "", blenderbim.bim.icons["IFC"].icon_id, 0),
("OBJECT", "Object Information", "", "FILE_3D", 1),
("MATERIALS", "Materials and Styles", "", "MATERIAL", 2),
("DRAWINGS", "Drawings and Documents", "", "DOCUMENTS", 3),
("SERVICES", "Services and Systems", "", "NETWORK_DRIVE", 4),
("STRUCTURE", "Structural Analysis", "", "EDITMODE_HLT", 5),
("SCHEDULING", "Construction Scheduling", "", "NLA", 6),
("FM", "Facility Management", "", "PACKAGE", 7),
("OTHER", "Other Properties", "", "COLLAPSEMENU", 8),
]
class BIMAreaProperties(PropertyGroup):
tab: EnumProperty(
default="PROJECT",
items=[
("PROJECT", "Project Overview", "", "VIEW3D", 1),
("OBJECT", "Object Information", "", "FILE_3D", 2),
("MATERIALS", "Materials and Styles", "", "MATERIAL", 3),
("DRAWINGS", "Drawings and Documents", "", "DOCUMENTS", 4),
("SERVICES", "Services and Systems", "", "NETWORK_DRIVE", 5),
("STRUCTURE", "Structural Analysis", "", "EDITMODE_HLT", 6),
("SCHEDULING", "Construction Scheduling", "", "NLA", 7),
("FM", "Facility Management", "", "PACKAGE", 8),
("OTHER", "Other Properties", "", "COLLAPSEMENU", 9),
],
name="Tab",
)
tab: EnumProperty(default=0, items=get_tab, name="Tab")
class BIMProperties(PropertyGroup):
+100
View File
@@ -0,0 +1,100 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="48mm"
height="48mm"
viewBox="0 0 48 48"
version="1.1"
id="svg9030"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
sodipodi:docname="icons.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview9032"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="1.6106622"
inkscape:cx="66.121873"
inkscape:cy="50.600307"
inkscape:window-width="1920"
inkscape:window-height="1055"
inkscape:window-x="0"
inkscape:window-y="25"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs9027" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<rect
style="fill:#363636;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round"
id="rect9216"
width="48"
height="48"
x="0"
y="0" />
<path
id="path8952"
style="fill:#ffffff;fill-opacity:1"
sodipodi:type="inkscape:offset"
inkscape:radius="-0.33450544"
inkscape:original="M 148.37109 1251.9766 C 147.60971 1251.9997 146.85647 1252.3141 146.29297 1252.9121 L 139.05664 1260.6016 C 137.93064 1261.7986 137.98855 1263.6806 139.18555 1264.8066 L 145.61914 1270.8633 C 146.21714 1271.4268 146.989 1271.6929 147.75 1271.6699 C 148.511 1271.6469 149.26317 1271.3348 149.82617 1270.7363 L 150.30273 1270.2285 L 142.19141 1262.5938 L 148.49023 1255.9004 L 150.66406 1257.9473 L 153.16406 1255.293 L 150.5 1252.7852 C 149.902 1252.2222 149.13248 1251.9535 148.37109 1251.9766 z M 157.90625 1252.1191 C 157.14548 1252.1421 156.39308 1252.4562 155.83008 1253.0547 L 149.77344 1259.4883 C 148.64644 1260.6843 148.70144 1262.5693 149.89844 1263.6953 L 150.40625 1264.1699 L 158.04102 1256.0586 L 164.73633 1262.3594 L 162.6875 1264.5332 L 165.34375 1267.0332 L 167.84961 1264.3691 C 168.97561 1263.1721 168.91866 1261.2881 167.72266 1260.1621 L 160.0332 1252.9258 C 159.4352 1252.3628 158.66702 1252.0962 157.90625 1252.1191 z M 156.44727 1258.3828 L 150.71875 1264.4668 L 153.375 1266.9668 L 157.0625 1263.0469 C 158.1885 1261.8499 158.13155 1259.9678 156.93555 1258.8418 L 156.44727 1258.3828 z M 147.05078 1262.7656 C 146.28976 1262.7887 145.53761 1263.1032 144.97461 1263.7012 L 144.51367 1264.1895 L 150.59961 1269.916 L 153.09766 1267.2598 L 149.17969 1263.5723 C 148.58119 1263.0093 147.8118 1262.7425 147.05078 1262.7656 z M 159.01758 1262.834 C 158.25656 1262.8571 157.50441 1263.1696 156.94141 1263.7676 L 156.46484 1264.2754 L 164.57617 1271.9102 L 158.27539 1278.6035 L 156.10156 1276.5566 L 153.60156 1279.2109 L 156.26562 1281.7188 C 156.86362 1282.2817 157.63535 1282.5503 158.39648 1282.5273 C 159.1576 1282.5042 159.91016 1282.1898 160.47266 1281.5918 L 167.70898 1273.9023 C 168.83498 1272.7063 168.77708 1270.8223 167.58008 1269.6953 L 161.14648 1263.6406 C 160.54798 1263.0777 159.77859 1262.8108 159.01758 1262.834 z M 156.16797 1264.5879 L 153.66992 1267.2441 L 157.58789 1270.9316 C 158.14899 1271.4598 158.86029 1271.7282 159.57422 1271.7402 C 160.38335 1271.7542 161.19478 1271.4386 161.79297 1270.8027 L 162.25391 1270.3145 L 156.16797 1264.5879 z M 141.42383 1267.4707 L 138.91602 1270.1348 C 137.79002 1271.3308 137.84893 1273.2148 139.04492 1274.3418 L 146.73242 1281.5781 C 147.33092 1282.141 148.10033 1282.4078 148.86133 1282.3848 C 149.62233 1282.3616 150.37595 1282.0477 150.93945 1281.4492 L 156.99414 1275.0156 C 158.12014 1273.8186 158.06419 1271.9346 156.86719 1270.8086 L 156.35938 1270.334 L 148.72461 1278.4453 L 142.03125 1272.1445 L 144.07812 1269.9707 L 141.42383 1267.4707 z M 153.39258 1267.5391 L 149.70508 1271.4551 C 148.57808 1272.6521 148.63504 1274.5361 149.83203 1275.6621 L 150.32031 1276.123 L 156.04883 1270.0371 L 153.39258 1267.5391 z "
d="m 148.38086,1252.3105 c -0.67611,0.021 -1.34215,0.2978 -1.84375,0.8301 l -7.23633,7.6895 c -1.00218,1.0654 -0.95215,2.7302 0.11328,3.7324 l 6.4336,6.0566 c 0.53169,0.5011 1.21627,0.7373 1.89257,0.7168 0.67632,-0.02 1.34091,-0.2956 1.8418,-0.8281 l 0.24805,-0.2656 -7.86719,-7.4043 a 0.33453889,0.33453889 0 0 1 -0.0156,-0.4727 l 6.29882,-6.6933 a 0.33453889,0.33453889 0 0 1 0.47266,-0.016 l 1.93164,1.8184 2.04102,-2.168 -2.41993,-2.2773 c -0.53239,-0.5012 -1.21465,-0.7393 -1.89062,-0.7188 z m 9.53516,0.1426 c -0.67549,0.02 -1.34069,0.2974 -1.8418,0.8301 l -6.05664,6.4336 c -1.00297,1.0644 -0.95565,2.7325 0.10937,3.7344 l 0.26367,0.2461 7.40626,-7.8672 a 0.33453889,0.33453889 0 0 1 0.47265,-0.016 l 6.69531,6.3007 a 0.33453889,0.33453889 0 0 1 0.0156,0.4727 l -1.82031,1.9316 2.16992,2.041 2.27539,-2.4199 c 1.00212,-1.0653 0.95294,-2.7324 -0.11133,-3.7344 l -7.68945,-7.2363 c -0.53228,-0.5011 -1.21272,-0.7371 -1.88867,-0.7168 z m -1.45508,6.4024 -5.26953,5.5976 2.16992,2.041 3.45703,-3.6757 c 1.00224,-1.0655 0.95308,-2.7304 -0.11133,-3.7325 z m -9.40039,4.2441 c -0.67567,0.021 -1.3406,0.2977 -1.8418,0.8301 a 0.33453889,0.33453889 0 0 1 0,0 l -0.23047,0.2442 5.59766,5.2676 2.03906,-2.17 -3.67383,-3.457 c -0.5327,-0.5011 -1.21451,-0.7373 -1.89062,-0.7168 z m 11.96679,0.068 c -0.67625,0.021 -1.34085,0.296 -1.84179,0.8281 l -0.24805,0.2656 7.86719,7.4043 a 0.33453889,0.33453889 0 0 1 0.0156,0.4727 l -6.30078,6.6933 a 0.33453889,0.33453889 0 0 1 -0.47265,0.016 l -1.93165,-1.8184 -2.04101,2.168 2.41992,2.2773 c 0.53209,0.5009 1.21686,0.7392 1.89258,0.7188 0.67581,-0.021 1.34122,-0.298 1.8418,-0.8301 l 7.23632,-7.6895 c 1.0019,-1.0642 0.95218,-2.7312 -0.11328,-3.7343 l -6.43359,-6.0547 c -0.53272,-0.5011 -1.21458,-0.7374 -1.89063,-0.7168 z m -2.8457,1.8925 -2.03906,2.17 3.67383,3.457 c 0.49954,0.4703 1.12981,0.7081 1.76367,0.7187 0.71832,0.013 1.43615,-0.2658 1.96875,-0.832 a 0.33453889,0.33453889 0 0 1 0,-0 l 0.23047,-0.2442 z m -14.74414,2.8829 -2.27734,2.4199 c -1.00183,1.0641 -0.95128,2.7312 0.11328,3.7344 l 7.6875,7.2363 c 0.5327,0.501 1.2145,0.7372 1.89062,0.7168 0.67587,-0.021 1.34227,-0.2975 1.84375,-0.8301 l 6.05469,-6.4336 c 1.00219,-1.0654 0.95383,-2.7324 -0.11133,-3.7344 l -0.26367,-0.2461 -7.40625,7.8672 a 0.33453889,0.33453889 0 0 1 -0.47266,0.016 l -6.69336,-6.3008 a 0.33453889,0.33453889 0 0 1 -0.0156,-0.4727 l 1.81836,-1.9316 z m 11.96875,0.068 -3.45703,3.6719 c -1.00306,1.0654 -0.95389,2.7323 0.11133,3.7344 a 0.33453889,0.33453889 0 0 1 0.002,0 l 0.24414,0.2304 5.26953,-5.5976 z"
inkscape:export-filename="../Projects/ifcopenshell/src/blenderbim/blenderbim/bim/data/icons/IFC.png"
inkscape:export-xdpi="150.82909"
inkscape:export-ydpi="150.82909"
transform="matrix(0.53537983,0,0,-0.53537983,-58.118351,686.46113)" />
<rect
style="fill:#656565;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round"
id="rect9655"
width="16"
height="16"
x="0"
y="0" />
<path
id="path8815"
d="M 10.625225,7.1021518e-4 C 10.226604,-0.01131418 9.8229501,0.12932665 9.5097659,0.42417064 L 8.1142731,1.7374953 9.4230672,3.1275415 10.562324,2.0551173 l 3.299598,3.5050444 -4.2485927,3.999048 0.250105,0.2654095 c 0.5896997,0.6263398 1.5756447,0.6564528 2.2025477,0.066772 l 3.369417,-3.1713453 c 0.626888,-0.5902061 0.657218,-1.5768488 0.06755,-2.2031904 L 11.712358,0.49015782 C 11.417761,0.17698777 11.02389,0.01275687 10.625269,7.1169967e-4 Z M 5.6317063,0.07512783 C 5.2331595,0.06310344 4.8304559,0.20301686 4.5170044,0.49785491 L 0.49012295,4.2874765 C -0.13624251,4.8776811 -0.16633023,5.863592 0.42337685,6.4899321 L 1.736779,7.8853196 3.1268887,6.5766042 2.0543842,5.4374076 5.559586,2.1379654 9.5588605,6.3863457 9.8243011,6.1370133 C 10.451204,5.5473313 10.480762,4.5606885 9.8911071,3.9338244 L 6.7196265,0.56457395 C 6.4244501,0.25114115 6.0302679,0.08727691 5.6317063,0.07512783 Z M 6.3958128,3.3546169 6.1395766,3.5955174 C 5.5126885,4.185198 5.4833683,5.1718422 6.0736616,5.7987064 L 8.0046376,7.8500228 9.3955134,6.541306 Z m 4.8462202,2.2952542 c -0.373903,0.00623 -0.746426,0.146846 -1.040281,0.4234604 L 8.1495761,8.0042512 9.4583554,9.3950307 12.645186,6.3962948 12.4043,6.1401025 C 12.091012,5.8070848 11.665787,5.6424873 11.242033,5.6498711 Z M 5.0494295,5.6860037 C 4.6508678,5.6739793 4.2471443,5.813581 3.9339586,6.1086788 L 0.56377528,9.2808094 C -0.06312017,9.8704915 -0.09267938,10.856349 0.49702918,11.483213 L 4.286855,15.509911 c 0.5902311,0.626341 1.5769484,0.656401 2.2033169,0.06671 L 7.8848927,14.2633 6.5760986,12.87252 5.437614,13.944946 2.1380069,10.4399 6.3866085,6.4408533 6.1365035,6.1754439 C 5.8416537,5.8620111 5.4479763,5.6980429 5.0494146,5.6859977 Z M 6.5415824,6.6050382 3.354743,9.6037727 3.5956333,9.8599649 c 0.5897115,0.6263401 1.5756494,0.6564531 2.2025523,0.066773 L 7.8503765,7.9958178 Z M 14.263928,8.1147479 12.872265,9.4234647 13.945548,10.56266 10.439565,13.862102 6.4410772,9.6137232 6.1748647,9.8630556 C 5.5479767,10.452736 5.5186565,11.439118 6.1089497,12.065459 l 3.172252,3.370035 c 0.5897145,0.626865 1.5754073,0.6564 2.2017763,0.06671 l 4.026887,-3.789622 c 0.626368,-0.589682 0.65646,-1.575591 0.06681,-2.2024551 z M 7.9953593,8.1498413 6.6044835,9.4585581 9.604125,12.645249 9.8603612,12.404348 C 10.48673,11.814666 10.51605,10.828757 9.926276,10.201893 Z"
style="fill:#dadada;fill-opacity:1;stroke-width:0.52371" />
<rect
style="fill:#656565;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round"
id="rect9657"
width="16"
height="16"
x="0"
y="32" />
<rect
style="fill:#656565;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round"
id="rect9659"
width="16"
height="16"
x="32"
y="0" />
<rect
style="fill:#656565;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round"
id="rect9661"
width="16"
height="16"
x="32"
y="32" />
<rect
style="fill:#656565;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round"
id="rect9663"
width="16"
height="16"
x="16"
y="16" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 10 KiB