Вращение svg элемента находящегося в группе других элементов

Пробую сделать кнопку для вращения элемента svg, который находится в группе с другими элементами. Пробовал использовать матрицы для пересчета и все что находил на формуах и в гугле. В целом у меня получилось сделать вращение элемента вокруг, но проблема в том, что при первом вызове вращения элемент уезжает со своего места и вращается уже на новом месте. Пробовал вычислять глобальные координаты и после вращения перемещать элемент на них, но глобальные координаты для элемента вычисляются как раз те, на которые переходит вращение. Может кто сможет объяснить почему у меня съезжает элемент и как его оставлять на месте при вращении?

        class Merger {
            constructor(svgCanvas, proximityThreshold = 50) {
                this.svgCanvas = svgCanvas;
                this.groups = [];
                this.proximityThreshold = proximityThreshold;
                this.init();
            }

            init() {
                this.updateDraggableGroups();
                this.addSelectableFeature();
            }

            updateDraggableGroups() {
                const groups = d3.select(this.svgCanvas).selectAll('.draggable-group').call(d3.drag()
                    .on('start', (event, d) => this.startDrag(event, d))
                    .on('drag', (event, d) => this.drag(event, d))
                    .on('end', (event, d) => this.endDrag(event, d)));
                
                this.groups = groups.nodes();
                console.log('Updated groups:', this.groups);
            }           

            getRotationFromTransform(element) {
                const transform = d3.select(element).attr('transform');
                const rotateMatch = transform ? transform.match(/rotate\(([^)]+)\)/) : null;
                return rotateMatch ? parseFloat(rotateMatch[1]) : 0;
            }


            addSelectableFeature() {
                d3.select(this.svgCanvas).selectAll('.sofa').on('click', (event, d) => {
                    d3.selectAll('.selected').classed('selected', false);
                    d3.select(event.target.closest('.sofa')).classed('selected', true);
                    document.getElementById('rotateBtn').classList.remove('hidden');
                });
            }

            rotateSelectedSofa() {
                const selectedElement = d3.select('.selected');
                if (!selectedElement.empty()) {
                    const transform = selectedElement.attr("transform");
                    const rotateMatch = transform ? transform.match(/rotate\(([^)]+)\)/) : null;
                    const currentRotation = rotateMatch ? parseFloat(rotateMatch[1].split(',')[0]) : 0;
                    const newRotation = (currentRotation + 90) % 360;

                    const translateMatch = transform ? transform.match(/translate\(([^)]+)\)/) : null;
                    const translate = translateMatch ? translateMatch[1].split(',').map(Number) : [0, 0];

                    const bbox = selectedElement.node().getBBox();
                    const cx = bbox.x + bbox.width / 2;
                    const cy = bbox.y + bbox.height / 2;

                    const newTransform = `translate(${translate[0]},${translate[1]}) rotate(${newRotation}, ${cx}, ${cy})`;
                    selectedElement.attr("transform", newTransform);

                    console.log(`Rotated - Element: ${selectedElement.attr('id')}, New Transform: ${newTransform}`);
                }
            }
        }

        // Initialize after SVG content is loaded
        document.addEventListener('DOMContentLoaded', () => {
            const svgCanvas = document.getElementById('svgCanvas');
            const merger = new Merger(svgCanvas, 50);

            document.getElementById('rotateBtn').addEventListener('click', () => {
                merger.rotateSelectedSofa();
            });            
        });
        body {
            font-family: Arial, sans-serif;
            margin: 20px;
        }
        svg {
            border: 1px solid #ccc;
            width: 100%;
            height: 100vh;
        }
        .draggable-group {
            cursor: move;
        }
        .dragging {
            stroke: red;
            stroke-width: 2px;
        }
        .selected {
            stroke: blue;
            stroke-width: 2px;
        }
        .hidden {
            display: none;
        }
        .normalTable, .sofaTable {
            transform-origin: center center;
        }
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>SVG Editor</title>
    
    <script src="https://cdnjs.cloudflare.com/ajax/libs/d3/7.8.5/d3.min.js"></script>
</head>
<body>
    <h1>SVG Editor</h1>
    <button id="saveBtn">Save SVG</button>
    <button id="rotateBtn" class="hidden">Rotate Selected Sofa</button>
    <br><br>
    <svg id="svgCanvas">
    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Создано Microsoft Visio, экспорт SVG Итерация 2 - изменил svg руками, сохранил его как visio.svg Страница-1 -->
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events"
        xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="8.26772in" height="11.6929in"
        viewBox="0 0 595.276 841.889" xml:space="preserve" color-interpolation-filters="sRGB" class="st23">
    <v:documentProperties v:langID="1049">
        <v:userDefs>
            <v:ud v:nameU="VisAecDocument" v:val="VT0(1):26"/>
            <v:ud v:nameU="VisAecVersion" v:val="VT0(15):26"/>
            <v:ud v:nameU="Ifc__CustomPropsLevel" v:val="VT0(0):26"/>
            <v:ud v:nameU="msvNoAutoConnect" v:val="VT0(1):26"/>
        </v:userDefs>
    </v:documentProperties>

    <style type="text/css">
    <![CDATA[
        .st1 {fill:#789440;stroke:#923931;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.25}
        .st2 {fill:#789440;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.749999}
        .st3 {fill:#789440}
        .st4 {stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
        .st5 {fill:#b95f3a;stroke:#000000;stroke-linecap:butt;stroke-width:0.75}
        .st6 {fill:#310e00;stroke:none;stroke-linecap:butt;stroke-width:0.75}
        .st7 {fill:#157224;stroke:none;stroke-linecap:butt;stroke-width:0.75}
        .st8 {fill:#86c140;stroke:none;stroke-linecap:butt;stroke-width:0.75}
        .st9 {fill:#ffd965}
        .st10 {fill:#ffd965;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
        .st11 {fill:none;stroke:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75}
        .st12 {fill:#232323;stroke:none;stroke-linecap:butt;stroke-width:0.75}
        .st13 {fill:#4c4c4c;stroke:none;stroke-linecap:butt;stroke-width:0.75}
        .st14 {fill:#000000;stroke:none;stroke-linecap:butt;stroke-width:0.75}
        .st15 {stroke:#000000;stroke-linecap:butt;stroke-width:0.1875}
        .st16 {fill:none;stroke:#000000;stroke-linecap:butt;stroke-width:0.375}
        .st17 {fill:#d8842a;stroke:none;stroke-linecap:butt;stroke-width:0.75}
        .st18 {fill:#aa5d17}
        .st19 {stroke:none;stroke-linecap:butt;stroke-width:0.75}
        .st20 {fill:#486b03;stroke:none;stroke-linecap:butt;stroke-width:0.75}
        .st21 {fill:#a8bd40;stroke:none;stroke-linecap:butt;stroke-width:5E-05}
        .st22 {fill:#739626;stroke:none;stroke-linecap:butt;stroke-width:0.0001}
        .st23 {fill:none;fill-rule:evenodd;font-size:12px;overflow:visible;stroke-linecap:square;stroke-miterlimit:3}
    ]]>
    </style>

    <g v:mID="0" v:index="1" v:groupContext="foregroundPage">
        <v:custProps>
            <v:cp v:nameU="VisDoorFrameWidth" v:lbl="Ширина дверной коробки" v:type="4"
                    v:format="10 mm;20 mm;30 mm;40 mm;50 mm;60 mm;70 mm;80 mm;90 mm;100 mm" v:sortKey="0" v:invis="true"
                    v:langID="1049" v:cal="0" v:val="VT4(50 mm)"/>
            <v:cp v:nameU="VisDoorFrameDepth" v:lbl="Толщина дверной коробки" v:type="4"
                    v:format="Как у стены;100 mm;150 mm;200 mm;250 mm;300 mm" v:sortKey="0" v:invis="true" v:langID="1049"
                    v:cal="0" v:val="VT4(50 mm)"/>
            <v:cp v:nameU="VisDoorStopWidth" v:lbl="Ширина ограничителя двери" v:type="4"
                    v:format="10 mm;20 mm;30 mm;40 mm;50 mm;60 mm;70 mm;80 mm;90 mm;100 mm" v:sortKey="0" v:invis="true"
                    v:langID="1049" v:cal="0" v:val="VT4(20 mm)"/>
            <v:cp v:nameU="VisDoorStopDepth" v:lbl="Толщина ограничителя двери" v:type="4"
                    v:format="10 mm;20 mm;30 mm;40 mm;50 mm;60 mm;70 mm;80 mm;90 mm;100 mm" v:sortKey="0" v:invis="true"
                    v:langID="1049" v:cal="0" v:val="VT4(50 mm)"/>
            <v:cp v:nameU="VisDoorThresDepthIn" v:lbl="Внутренняя ширина порога двери" v:type="4"
                    v:format="10 mm;20 mm;30 mm;40 mm;50 mm;60 mm;70 mm;80 mm;90 mm;100 mm" v:sortKey="0" v:invis="true"
                    v:langID="1049" v:cal="0" v:val="VT4(50 mm)"/>
            <v:cp v:nameU="VisDoorThresWidthIn" v:lbl="Внутренняя толщина порога двери" v:type="4"
                    v:format="0 mm;10 mm;20 mm;30 mm;40 mm;50 mm;60 mm;70 mm;80 mm;90 mm;100 mm" v:sortKey="0" v:invis="true"
                    v:langID="1049" v:cal="0" v:val="VT4(50 mm)"/>
            <v:cp v:nameU="VisDoorThresDepthOut" v:lbl="Наружная толщина порога двери" v:type="4"
                    v:format="0 mm;10 mm;20 mm;30 mm;40 mm;50 mm;60 mm;70 mm;80 mm;90 mm;100 mm" v:sortKey="0" v:invis="true"
                    v:langID="1049" v:cal="0" v:val="VT4(50 mm)"/>
            <v:cp v:nameU="VisDoorThresWidthOut" v:lbl="Наружная ширина порога двери" v:type="4"
                    v:format="0 mm;10 mm;20 mm;30 mm;40 mm;50 mm;60 mm;70 mm;80 mm;90 mm;100 mm" v:sortKey="0" v:invis="true"
                    v:langID="1049" v:cal="0" v:val="VT4(50 mm)"/>
            <v:cp v:nameU="VisDoorPanelThickness" v:lbl="Толщина филенки" v:type="4"
                    v:format="10 mm;20 mm;30 mm;40 mm;50 mm;60 mm;70 mm;80 mm;90 mm;100 mm" v:sortKey="0" v:invis="true"
                    v:langID="1049" v:cal="0" v:val="VT4(50 mm)"/>
            <v:cp v:nameU="VisWndwFrameDepth" v:lbl="Толщина оконной рамы" v:type="4"
                    v:format="Как у стены;100 mm;150 mm;200 mm;250 mm;300 mm" v:sortKey="0" v:invis="true" v:langID="1049"
                    v:cal="0" v:val="VT4(200 mm)"/>
            <v:cp v:nameU="VisWndwFrameWidth" v:lbl="Ширина оконной рамы" v:type="4"
                    v:format="10 mm;20 mm;30 mm;40 mm;50 mm;60 mm;70 mm;80 mm;90 mm;100 mm" v:sortKey="0" v:invis="true"
                    v:langID="1049" v:cal="0" v:val="VT4(50 mm)"/>
            <v:cp v:nameU="VisWndwSashDepth" v:lbl="Толщина оконного переплета" v:type="4"
                    v:format="10 mm;20 mm;30 mm;40 mm;50 mm;60 mm;70 mm;80 mm;90 mm;100 mm" v:sortKey="0" v:invis="true"
                    v:langID="1049" v:cal="0" v:val="VT4(50 mm)"/>
            <v:cp v:nameU="VisWndwSashWidth" v:lbl="Ширина оконного переплета" v:type="4"
                    v:format="5 mm;10 mm;20 mm;30 mm;40 mm;50 mm;60 mm;70 mm;80 mm;90 mm;100 mm" v:sortKey="0" v:invis="true"
                    v:langID="1049" v:cal="0" v:val="VT4(50 mm)"/>
            <v:cp v:nameU="VisWndwSillDepthIn" v:lbl="Внутренняя толщина подоконника" v:type="4"
                    v:format="0 mm;10 mm;20 mm;30 mm;40 mm;50 mm;60 mm;70 mm;80 mm;90 mm;100 mm" v:sortKey="0" v:invis="true"
                    v:langID="1049" v:cal="0" v:val="VT4(50 mm)"/>
            <v:cp v:nameU="VisWndwSillWidthIn" v:lbl="Внутренняя ширина подоконника" v:type="4"
                    v:format="0 mm;10 mm;20 mm;30 mm;40 mm;50 mm;60 mm;70 mm;80 mm;90 mm;100 mm" v:sortKey="0" v:invis="true"
                    v:langID="1049" v:cal="0" v:val="VT4(50 mm)"/>
            <v:cp v:nameU="VisWndwSillDepthOut" v:lbl="Наружная толщина подоконника" v:type="4"
                    v:format="0 mm;10 mm;20 mm;30 mm;40 mm;50 mm;60 mm;70 mm;80 mm;90 mm;100 mm" v:sortKey="0" v:invis="true"
                    v:langID="1049" v:cal="0" v:val="VT4(50 mm)"/>
            <v:cp v:nameU="VisWndwSillWidthOut" v:lbl="Наружная ширина подоконника" v:type="4"
                    v:format="0 mm;10 mm;20 mm;30 mm;40 mm;50 mm;60 mm;70 mm;80 mm;90 mm;100 mm" v:sortKey="0" v:invis="true"
                    v:langID="1049" v:cal="0" v:val="VT4(50 mm)"/>
            <v:cp v:nameU="WdFenceThick" v:lbl="Толщина деревянного забора" v:type="4" v:format="100 мм; 125 мм"
                    v:sortKey="visSpace02" v:langID="1049" v:val="VT4(100 мм)"/>
        </v:custProps>
        <v:userDefs>
            <v:ud v:nameU="VisAecPage" v:val="VT0(1):26"/>
            <v:ud v:nameU="LineStyleIndex" v:val="VT0(0):26"/>
            <v:ud v:nameU="VisDoorPanelsClosed" v:prompt="Show all doors closed" v:val="VT0(0):26"/>
            <v:ud v:nameU="VisDoorShowHeader" v:prompt="Show all door headers" v:val="VT0(0):26"/>
            <v:ud v:nameU="VisDoorShowPanel" v:prompt="Show all door panels" v:val="VT0(1):26"/>
            <v:ud v:nameU="VisDoorShowSwing" v:prompt="Show all door swings" v:val="VT0(1):26"/>
            <v:ud v:nameU="VisDoorShowThreshold" v:prompt="Show all door thresholds" v:val="VT0(0):26"/>
            <v:ud v:nameU="VisDoorShowThresIn" v:prompt="Show all door interior thresholds" v:val="VT0(1):26"/>
            <v:ud v:nameU="VisDoorShowThresOut" v:prompt="Show all door exterior thresholds" v:val="VT0(1):26"/>
            <v:ud v:nameU="VisDoorFrameToWall" v:prompt="Draw door frame depths same as wall thickness" v:val="VT0(1):26"/>
            <v:ud v:nameU="VisDoorSwingAs" v:prompt="Draw all door swings as: 0 = arc, 1 = line" v:val="VT0(0):26"/>
            <v:ud v:nameU="VisDoorShowFrame" v:prompt="Show all door frames" v:val="VT0(1):26"/>
            <v:ud v:nameU="VisDoorShowStop" v:prompt="Show all door stops" v:val="VT0(1):26"/>
            <v:ud v:nameU="VisWndwShowFrame" v:prompt="Show all window frames" v:val="VT0(1):26"/>
            <v:ud v:nameU="VisWndwShowSash" v:prompt="Show all window sashes" v:val="VT0(1):26"/>
            <v:ud v:nameU="VisWndwFrameToWall" v:prompt="Draw window frame depths same as wall thickness" v:val="VT0(1):26"/>
            <v:ud v:nameU="VisWndwShowHeader" v:prompt="Show all window headers" v:val="VT0(0):26"/>
            <v:ud v:nameU="VisWndwShowSill" v:prompt="Show all window sills" v:val="VT0(0):26"/>
            <v:ud v:nameU="VisWndwShowSillIn" v:prompt="Show all window interior sills" v:val="VT0(1):26"/>
            <v:ud v:nameU="VisWndwShowSillOut" v:prompt="Show all window exterior sills" v:val="VT0(1):26"/>
            <v:ud v:nameU="visSpaceUnits" v:val="VT0(1):26"/>
            <v:ud v:nameU="visSpacePrecision" v:val="VT0(0):26"/>
            <v:ud v:nameU="visSpaceLabel" v:val="VT0(1):26"/>
            <v:ud v:nameU="visSpaceNameLabel" v:val="VT0(1):26"/>
            <v:ud v:nameU="visSpaceUseLabel" v:val="VT0(1):26"/>
            <v:ud v:nameU="visSpaceBoundary" v:val="VT0(0):26"/>
            <v:ud v:nameU="SpaceLabelDisabled" v:prompt="Disabled Label" v:val="VT4()"/>
            <v:ud v:nameU="DisplayField1" v:prompt="Space label 1" v:val="VT4(Prop.Use)"/>
            <v:ud v:nameU="DisplayField2" v:prompt="Space label 2" v:val="VT4(Prop.Name)"/>
            <v:ud v:nameU="DisplayField3" v:prompt="Space label 3" v:val="VT4(User.visFMAreaDisplay)"/>
            <v:ud v:nameU="DisplayField4" v:prompt="Space label 4" v:val="VT4(User.DisplayFieldDisabled)"/>
            <v:ud v:nameU="IFCPropsInvisible" v:val="VT0(0):26"/>
            <v:ud v:nameU="LPrec" v:val="VT0(2):26"/>
            <v:ud v:nameU="LUnits" v:val="VT0(0):26"/>
            <v:ud v:nameU="ShowUnits" v:val="VT0(0):26"/>
            <v:ud v:nameU="APrec" v:val="VT0(1):26"/>
            <v:ud v:nameU="AUnits" v:val="VT0(1):26"/>
            <v:ud v:nameU="LInchPrec" v:val="VT0(4):26"/>
            <v:ud v:nameU="VisWndwClosed" v:prompt="Show all windows closed" v:val="VT0(0):26"/>
            <v:ud v:nameU="VisWndwShowGlass" v:prompt="Show all window glass panels" v:val="VT0(1):26"/>
            <v:ud v:nameU="VisWndwShowTag" v:prompt="Show all window tags" v:val="VT0(0):26"/>
            <v:ud v:nameU="VisDoorShowTag" v:prompt="Show all door tags" v:val="VT0(0):26"/>
            <v:ud v:nameU="WFThick" v:val="VT4(100 мм)"/>
        </v:userDefs>
        <title>Страница-1</title>
        <v:pageProperties v:drawingScale="39.3701" v:pageScale="0.787402" v:drawingUnits="6" v:shadowOffsetX="8.50393"
                v:shadowOffsetY="-8.50393"/>
        <v:layer v:name="Незакрепленное оборудование" v:index="0"/>
        <v:layer v:name="Мебель" v:index="1"/>
        <v:layer v:name="Соединительная линия" v:index="2"/>
        <v:layer v:name="Оборудование" v:index="3"/>
        <v:layer v:name="Электроприбор" v:index="4"/>
        <v:layer v:name="Благоустройство территории" v:index="5"/>
        <v:layer v:name="Забор" v:index="6"/>
        <v:layer v:name="Новые растения" v:index="7"/>
        <v:layer v:name="Растение" v:index="8"/>
        <g id="group122-118" transform="translate(22.6772,-587.415)" v:mID="122" v:groupContext="group" class="draggable-group sofaTable">
            <v:userDefs>
                <v:ud v:nameU="visAltText" v:val="VT4(Стол 10)"/>
            </v:userDefs>
            <title>Лист.122</title>
            <g id="shape118-119" v:mID="118" v:groupContext="shape" transform="translate(1.70079,-22.0334)">
                <title>Стол</title>
                <path transform="" d="M0 839.61 A2.46962 2.28334 -180 0 0 2.47 841.89 L48.56 841.89 A2.46962 2.28334 -180 0 0 51.02
                             839.61 L51.02 793.38 A2.46962 2.28334 -180 0 0 48.56 791.1 L2.47 791.1 A2.46962 2.28334 -180 0 0 0 793.38
                             L0 839.61 Z" class="st1"/>
            </g>
            <g id="shape119-121" v:mID="119" v:groupContext="shape" transform="translate(58.3937,-40.742)">
                <title>Стул 4</title>
                <rect x="0" y="826.582" width="15.3071" height="15.3071" class="st2"/>
            </g>
            <g id="shape117-123" v:mID="117" v:groupContext="shape" v:layerMember="0;1"
                    transform="translate(841.889,746.798) rotate(90)" class="sofa draggable-group">
                <title>2 seat sofa.701</title>
                <v:custProps>
                    <v:cp v:nameU="Width" v:lbl="Ширина" v:type="4"
                            v:format="800 mm;1000 mm;1200 mm;1400 mm;1600 mm;1800 mm;2000 mm" v:langID="1049"
                            v:val="VT0(62.992125984252):24"/>
                    <v:cp v:nameU="Depth" v:lbl="Глубина" v:type="4" v:format="500 mm;600 mm;700 mm;800 mm;900 mm;1000 mm"
                            v:langID="1049" v:val="VT0(31.496062992126):24"/>
                    <v:cp v:nameU="ShapeClass" v:lbl="Класс фигуры" v:invis="true" v:langID="1049" v:val="VT4(Актив)"/>
                    <v:cp v:nameU="ShapeType" v:lbl="Тип фигуры" v:invis="true" v:langID="1049" v:val="VT4(Мебель)"/>
                    <v:cp v:nameU="SubShapeType" v:lbl="Тип вложенной фигуры" v:invis="true" v:langID="1049" v:val="VT4(Кресло)"/>
                    <v:cp v:nameU="ID" v:lbl="Код" v:type="0" v:invis="false" v:langID="1049"/>
                    <v:cp v:nameU="Name" v:lbl="Имя" v:type="0" v:invis="false" v:langID="1049"/>
                    <v:cp v:nameU="Department" v:lbl="Отдел" v:type="0" v:invis="false" v:langID="1049"/>
                    <v:cp v:nameU="BelongsTo" v:lbl="Владелец" v:type="0" v:invis="true" v:langID="1049"/>
                    <v:cp v:nameU="Modify" v:lbl="Дата изменения" v:type="5" v:invis="false" v:langID="1049"/>
                    <v:cp v:nameU="AssetNumber" v:lbl="Инвентарный номер" v:type="0" v:invis="false" v:langID="1049"/>
                    <v:cp v:nameU="SerialNumber" v:lbl="Серийный номер" v:type="0" v:invis="false" v:langID="1049"/>
                    <v:cp v:nameU="ProductDescription" v:lbl="Описание товара" v:type="0" v:invis="false" v:langID="1049"/>
                    <v:cp v:nameU="PurchaseDate" v:lbl="Дата покупки" v:type="5" v:invis="false" v:langID="1049"/>
                    <v:cp v:nameU="ProductNumber" v:lbl="Номер товара" v:type="0" v:langID="1049"/>
                    <v:cp v:nameU="BaseElevation" v:lbl="Базовая высота" v:type="2" v:langID="1049"/>
                    <v:cp v:nameU="Width" v:lbl="" v:prompt="" v:type="0" v:format="" v:sortKey="" v:invis="false" v:ask="false"
                            v:langID="0" v:cal="0" v:val="VT0(37.992125984252):1"/>
                    <v:cp v:nameU="Depth" v:lbl="" v:prompt="" v:type="0" v:format="" v:sortKey="" v:invis="false" v:ask="false"
                            v:langID="0" v:cal="0" v:val="VT0(13.72306781628):1"/>
                </v:custProps>
                <v:userDefs>
                    <v:ud v:nameU="3D_type" v:val="VT0(1):26"/>
                    <v:ud v:nameU="3D_model_id" v:val="VT4(диван)"/>
                    <v:ud v:nameU="visFMName"/>
                    <v:ud v:nameU="AntiScale" v:val="VT0(100):26"/>
                    <v:ud v:nameU="HasText" v:val="VT0(0):5"/>
                    <v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
                    <v:ud v:nameU="SolSH" v:val="VT4({5D50005D-537C-4738-9C46-130C74335A6D})"/>
                    <v:ud v:nameU="ShapeClass" v:prompt="Актив" v:val="VT0(2):26"/>
                    <v:ud v:nameU="ShapeType" v:prompt="Мебель" v:val="VT0(21):26"/>
                    <v:ud v:nameU="SubShapeType" v:prompt="Кресло" v:val="VT0(12):26"/>
                    <v:ud v:nameU="AntiScale" v:prompt="" v:val="VT0(50):26"/>
                </v:userDefs>
                <path transform="" d="M18.06 787.18 L1.42 787.18 A1.4173 1.4173 -180 0 0 -0 788.6 L0 840.47 A1.4173 1.4173 -180 0
                             0 1.42 841.89 L18.06 841.89 A1.70079 3.40157 -180 0 0 18.06 835.09 L18.06 793.98 A1.70079 3.40157 -180
                             0 0 18.06 787.18 Z" class="st3"/>
                <path transform="" d="M18.06 787.18 L1.42 787.18 A1.4173 1.4173 -180 0 0 -0 788.6 L0 840.47 A1.4173 1.4173 -180 0
                             0 1.42 841.89 L18.06 841.89 A1.70079 3.40157 -180 0 0 18.06 835.09 L18.06 793.98 A1.70079 3.40157 -180
                             0 0 18.06 787.18" class="st4"/>
                <path transform="" d="M18.06 835.09 L5.67 835.09 L5.67 793.98 L18.06 793.98" class="st4"/>
                <path transform="" d="M18.06 814.53 L5.67 814.53" class="st4"/>
                <path transform="" d="M5.67 835.09 A2.83423 6.80215 0 0 1 2.83 841.89" class="st4"/>
                <path transform="" d="M2.83 787.18 A2.83423 6.80215 0 0 1 5.67 793.98" class="st4"/>
            </g>
            <g id="shape116-130" v:mID="116" v:groupContext="shape" v:layerMember="0;1"
                    transform="translate(-787.18,841.889) rotate(-90)" class="sofa draggable-group">
                <title>2 seat sofa</title>
                <v:custProps>
                    <v:cp v:nameU="Width" v:lbl="Ширина" v:type="4"
                            v:format="800 mm;1000 mm;1200 mm;1400 mm;1600 mm;1800 mm;2000 mm" v:langID="1049"
                            v:val="VT0(62.992125984252):24"/>
                    <v:cp v:nameU="Depth" v:lbl="Глубина" v:type="4" v:format="500 mm;600 mm;700 mm;800 mm;900 mm;1000 mm"
                            v:langID="1049" v:val="VT0(31.496062992126):24"/>
                    <v:cp v:nameU="ShapeClass" v:lbl="Класс фигуры" v:invis="true" v:langID="1049" v:val="VT4(Актив)"/>
                    <v:cp v:nameU="ShapeType" v:lbl="Тип фигуры" v:invis="true" v:langID="1049" v:val="VT4(Мебель)"/>
                    <v:cp v:nameU="SubShapeType" v:lbl="Тип вложенной фигуры" v:invis="true" v:langID="1049" v:val="VT4(Кресло)"/>
                    <v:cp v:nameU="ID" v:lbl="Код" v:type="0" v:invis="false" v:langID="1049"/>
                    <v:cp v:nameU="Name" v:lbl="Имя" v:type="0" v:invis="false" v:langID="1049"/>
                    <v:cp v:nameU="Department" v:lbl="Отдел" v:type="0" v:invis="false" v:langID="1049"/>
                    <v:cp v:nameU="BelongsTo" v:lbl="Владелец" v:type="0" v:invis="true" v:langID="1049"/>
                    <v:cp v:nameU="Modify" v:lbl="Дата изменения" v:type="5" v:invis="false" v:langID="1049"/>
                    <v:cp v:nameU="AssetNumber" v:lbl="Инвентарный номер" v:type="0" v:invis="false" v:langID="1049"/>
                    <v:cp v:nameU="SerialNumber" v:lbl="Серийный номер" v:type="0" v:invis="false" v:langID="1049"/>
                    <v:cp v:nameU="ProductDescription" v:lbl="Описание товара" v:type="0" v:invis="false" v:langID="1049"/>
                    <v:cp v:nameU="PurchaseDate" v:lbl="Дата покупки" v:type="5" v:invis="false" v:langID="1049"/>
                    <v:cp v:nameU="ProductNumber" v:lbl="Номер товара" v:type="0" v:langID="1049"/>
                    <v:cp v:nameU="BaseElevation" v:lbl="Базовая высота" v:type="2" v:langID="1049"/>
                    <v:cp v:nameU="Width" v:lbl="" v:prompt="" v:type="0" v:format="" v:sortKey="" v:invis="false" v:ask="false"
                            v:langID="0" v:cal="0" v:val="VT0(37.992125984252):1"/>
                    <v:cp v:nameU="Depth" v:lbl="" v:prompt="" v:type="0" v:format="" v:sortKey="" v:invis="false" v:ask="false"
                            v:langID="0" v:cal="0" v:val="VT0(13.72306781628):1"/>
                </v:custProps>
                <v:userDefs>
                    <v:ud v:nameU="3D_type" v:val="VT0(1):26"/>
                    <v:ud v:nameU="3D_model_id" v:val="VT4(диван)"/>
                    <v:ud v:nameU="visFMName"/>
                    <v:ud v:nameU="AntiScale" v:val="VT0(100):26"/>
                    <v:ud v:nameU="HasText" v:val="VT0(0):5"/>
                    <v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
                    <v:ud v:nameU="SolSH" v:val="VT4({5D50005D-537C-4738-9C46-130C74335A6D})"/>
                    <v:ud v:nameU="ShapeClass" v:prompt="Актив" v:val="VT0(2):26"/>
                    <v:ud v:nameU="ShapeType" v:prompt="Мебель" v:val="VT0(21):26"/>
                    <v:ud v:nameU="SubShapeType" v:prompt="Кресло" v:val="VT0(12):26"/>
                    <v:ud v:nameU="AntiScale" v:prompt="" v:val="VT0(50):26"/>
                </v:userDefs>
                <path transform="" d="M18.06 787.18 L1.42 787.18 A1.4173 1.4173 -180 0 0 -0 788.6 L0 840.47 A1.4173 1.4173 -180 0
                             0 1.42 841.89 L18.06 841.89 A1.70079 3.40157 -180 0 0 18.06 835.09 L18.06 793.98 A1.70079 3.40157 -180
                             0 0 18.06 787.18 Z" class="st3"/>
                <path transform="" d="M18.06 787.18 L1.42 787.18 A1.4173 1.4173 -180 0 0 -0 788.6 L0 840.47 A1.4173 1.4173 -180 0
                             0 1.42 841.89 L18.06 841.89 A1.70079 3.40157 -180 0 0 18.06 835.09 L18.06 793.98 A1.70079 3.40157 -180
                             0 0 18.06 787.18" class="st4"/>
                <path transform="" d="M18.06 835.09 L5.67 835.09 L5.67 793.98 L18.06 793.98" class="st4"/>
                <path transform="" d="M18.06 814.53 L5.67 814.53" class="st4"/>
                <path transform="" d="M5.67 835.09 A2.83423 6.80215 0 0 1 2.83 841.89" class="st4"/>
                <path transform="" d="M2.83 787.18 A2.83423 6.80215 0 0 1 5.67 793.98" class="st4"/>
            </g>
        </g>
        </g>
</svg>


    </svg>

    
</body>
</html>


Ответы (0 шт):