{"id":4975,"date":"2025-06-01T21:43:00","date_gmt":"2025-06-02T02:43:00","guid":{"rendered":"https:\/\/eviluservice.com\/?page_id=4975"},"modified":"2025-06-01T22:02:23","modified_gmt":"2025-06-02T03:02:23","slug":"simulador-de-disenoarquitectonico-para-ajustar-propuestasarquitectonicas-iniciales","status":"publish","type":"page","link":"https:\/\/eviluservice.com\/blog\/simulador-de-disenoarquitectonico-para-ajustar-propuestasarquitectonicas-iniciales\/","title":{"rendered":"Simulador de Dise\u00f1oArquitect\u00f3nico para ajustar propuestasarquitect\u00f3nicas iniciales."},"content":{"rendered":"\n<h1 class=\"wp-block-heading\"><strong>Simulador de Dise\u00f1oArquitect\u00f3nico para ajustar propuestasarquitect\u00f3nicas iniciales.<\/strong><\/h1>\n\n\n\n<!DOCTYPE html>\n<html lang=\"es\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>Simulador de Dise\u00f1o Arquitect\u00f3nico Sostenible<\/title>\n    <style>\n        * {\n            margin: 0;\n            padding: 0;\n            box-sizing: border-box;\n        }\n\n        body {\n            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\n            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n            min-height: 100vh;\n            padding: 20px;\n        }\n\n        .container {\n            max-width: 1400px;\n            margin: 0 auto;\n            background: rgba(255, 255, 255, 0.95);\n            border-radius: 20px;\n            box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);\n            overflow: hidden;\n        }\n\n        .header {\n            background: linear-gradient(135deg, #2c3e50 0%, #3498db 100%);\n            color: white;\n            padding: 30px;\n            text-align: center;\n        }\n\n        .header h1 {\n            font-size: 2.5rem;\n            margin-bottom: 10px;\n            text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3);\n        }\n\n        .header p {\n            font-size: 1.1rem;\n            opacity: 0.9;\n        }\n\n        .main-content {\n            display: grid;\n            grid-template-columns: 1fr 1fr;\n            gap: 30px;\n            padding: 30px;\n        }\n\n        .control-panel {\n            background: #f8f9fa;\n            padding: 25px;\n            border-radius: 15px;\n            box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1);\n        }\n\n        .control-section {\n            margin-bottom: 25px;\n        }\n\n        .control-section h3 {\n            color: #2c3e50;\n            margin-bottom: 15px;\n            font-size: 1.2rem;\n            border-bottom: 2px solid #3498db;\n            padding-bottom: 5px;\n        }\n\n        .form-group {\n            margin-bottom: 15px;\n        }\n\n        .form-group label {\n            display: block;\n            margin-bottom: 5px;\n            font-weight: 600;\n            color: #34495e;\n        }\n\n        .form-group input,\n        .form-group select {\n            width: 100%;\n            padding: 10px;\n            border: 2px solid #ddd;\n            border-radius: 8px;\n            font-size: 14px;\n            transition: border-color 0.3s ease;\n        }\n\n        .form-group input:focus,\n        .form-group select:focus {\n            outline: none;\n            border-color: #3498db;\n            box-shadow: 0 0 0 3px rgba(52, 152, 219, 0.1);\n        }\n\n        .range-group {\n            display: flex;\n            align-items: center;\n            gap: 10px;\n        }\n\n        .range-group input[type=\"range\"] {\n            flex: 1;\n        }\n\n        .range-value {\n            min-width: 50px;\n            text-align: center;\n            font-weight: bold;\n            color: #3498db;\n        }\n\n        .visualization-panel {\n            display: flex;\n            flex-direction: column;\n            gap: 20px;\n        }\n\n        .metrics-display {\n            background: #f8f9fa;\n            padding: 20px;\n            border-radius: 15px;\n            box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1);\n        }\n\n        .metrics-grid {\n            display: grid;\n            grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));\n            gap: 15px;\n            margin-bottom: 20px;\n        }\n\n        .metric-card {\n            background: white;\n            padding: 15px;\n            border-radius: 10px;\n            text-align: center;\n            box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);\n            transition: transform 0.3s ease;\n        }\n\n        .metric-card:hover {\n            transform: translateY(-2px);\n        }\n\n        .metric-value {\n            font-size: 1.5rem;\n            font-weight: bold;\n            color: #3498db;\n            margin-bottom: 5px;\n        }\n\n        .metric-label {\n            font-size: 0.9rem;\n            color: #7f8c8d;\n        }\n\n        .chart-container {\n            background: white;\n            padding: 20px;\n            border-radius: 10px;\n            margin-bottom: 20px;\n        }\n\n        .chart {\n            height: 200px;\n            display: flex;\n            align-items: end;\n            justify-content: space-around;\n            gap: 10px;\n        }\n\n        .bar {\n            background: linear-gradient(to top, #3498db, #5dade2);\n            border-radius: 4px 4px 0 0;\n            min-width: 40px;\n            position: relative;\n            transition: all 0.3s ease;\n        }\n\n        .bar:hover {\n            filter: brightness(1.1);\n        }\n\n        .bar-label {\n            position: absolute;\n            bottom: -25px;\n            left: 50%;\n            transform: translateX(-50%);\n            font-size: 0.8rem;\n            color: #7f8c8d;\n        }\n\n        .bar-value {\n            position: absolute;\n            top: -25px;\n            left: 50%;\n            transform: translateX(-50%);\n            font-size: 0.8rem;\n            font-weight: bold;\n            color: #2c3e50;\n        }\n\n        .comparison-table {\n            background: white;\n            border-radius: 10px;\n            overflow: hidden;\n            box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);\n        }\n\n        .comparison-table table {\n            width: 100%;\n            border-collapse: collapse;\n        }\n\n        .comparison-table th {\n            background: #3498db;\n            color: white;\n            padding: 12px;\n            text-align: left;\n        }\n\n        .comparison-table td {\n            padding: 12px;\n            border-bottom: 1px solid #ecf0f1;\n        }\n\n        .comparison-table tr:nth-child(even) {\n            background: #f8f9fa;\n        }\n\n        .image-generation {\n            background: #f8f9fa;\n            padding: 20px;\n            border-radius: 15px;\n            box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1);\n            text-align: center;\n        }\n\n        .generate-btn {\n            background: linear-gradient(135deg, #27ae60, #2ecc71);\n            color: white;\n            border: none;\n            padding: 15px 30px;\n            border-radius: 25px;\n            font-size: 1.1rem;\n            font-weight: bold;\n            cursor: pointer;\n            transition: all 0.3s ease;\n            box-shadow: 0 6px 12px rgba(46, 204, 113, 0.3);\n        }\n\n        .generate-btn:hover {\n            transform: translateY(-2px);\n            box-shadow: 0 8px 16px rgba(46, 204, 113, 0.4);\n        }\n\n        .generate-btn:disabled {\n            background: #95a5a6;\n            cursor: not-allowed;\n            transform: none;\n            box-shadow: none;\n        }\n\n        .loading {\n            display: none;\n            margin: 20px 0;\n        }\n\n        .spinner {\n            border: 4px solid #f3f3f3;\n            border-top: 4px solid #3498db;\n            border-radius: 50%;\n            width: 40px;\n            height: 40px;\n            animation: spin 1s linear infinite;\n            margin: 0 auto;\n        }\n\n        @keyframes spin {\n            0% { transform: rotate(0deg); }\n            100% { transform: rotate(360deg); }\n        }\n\n        .generated-image {\n            margin-top: 20px;\n            max-width: 100%;\n            border-radius: 10px;\n            box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);\n        }\n\n        .download-btn {\n            background: linear-gradient(135deg, #8e44ad, #9b59b6);\n            color: white;\n            border: none;\n            padding: 10px 20px;\n            border-radius: 15px;\n            margin-top: 10px;\n            cursor: pointer;\n            transition: all 0.3s ease;\n        }\n\n        .download-btn:hover {\n            transform: translateY(-1px);\n        }\n\n        .prompt-display {\n            background: #2c3e50;\n            color: white;\n            padding: 15px;\n            border-radius: 10px;\n            margin: 15px 0;\n            font-family: monospace;\n            font-size: 0.9rem;\n            line-height: 1.4;\n        }\n\n        @media (max-width: 768px) {\n            .main-content {\n                grid-template-columns: 1fr;\n                gap: 20px;\n                padding: 20px;\n            }\n\n            .header h1 {\n                font-size: 2rem;\n            }\n\n            .metrics-grid {\n                grid-template-columns: repeat(2, 1fr);\n            }\n        }\n    <\/style>\n<\/head>\n<body>\n    <div class=\"container\">\n        <div class=\"header\">\n            <h1>\ud83c\udfd7\ufe0f Simulador de Dise\u00f1o Arquitect\u00f3nico Sostenible<\/h1>\n            <p>Optimiza tu dise\u00f1o para eficiencia energ\u00e9tica y sostenibilidad<\/p>\n        <\/div>\n\n        <div class=\"main-content\">\n            <!-- Panel de Controles -->\n            <div class=\"control-panel\">\n                <div class=\"control-section\">\n                    <h3>\ud83d\udcd0 Dimensiones<\/h3>\n                    <div class=\"form-group\">\n                        <label for=\"largo\">Largo (m)<\/label>\n                        <div class=\"range-group\">\n                            <input type=\"range\" id=\"largo\" min=\"8\" max=\"20\" value=\"12\" oninput=\"updateSimulation()\">\n                            <span class=\"range-value\" id=\"largo-value\">12<\/span>\n                        <\/div>\n                    <\/div>\n                    <div class=\"form-group\">\n                        <label for=\"ancho\">Ancho (m)<\/label>\n                        <div class=\"range-group\">\n                            <input type=\"range\" id=\"ancho\" min=\"6\" max=\"15\" value=\"10\" oninput=\"updateSimulation()\">\n                            <span class=\"range-value\" id=\"ancho-value\">10<\/span>\n                        <\/div>\n                    <\/div>\n                    <div class=\"form-group\">\n                        <label for=\"pisos\">N\u00famero de Pisos<\/label>\n                        <select id=\"pisos\" onchange=\"updateSimulation()\">\n                            <option value=\"1\">1 Piso<\/option>\n                            <option value=\"2\" selected>2 Pisos<\/option>\n                            <option value=\"3\">3 Pisos<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"control-section\">\n                    <h3>\ud83e\udded Configuraci\u00f3n<\/h3>\n                    <div class=\"form-group\">\n                        <label for=\"orientacion\">Orientaci\u00f3n<\/label>\n                        <select id=\"orientacion\" onchange=\"updateSimulation()\">\n                            <option value=\"norte\" selected>Norte<\/option>\n                            <option value=\"sur\">Sur<\/option>\n                            <option value=\"este\">Este<\/option>\n                            <option value=\"oeste\">Oeste<\/option>\n                        <\/select>\n                    <\/div>\n                    <div class=\"form-group\">\n                        <label for=\"clima\">Ubicaci\u00f3n Clim\u00e1tica<\/label>\n                        <select id=\"clima\" onchange=\"updateSimulation()\">\n                            <option value=\"costa\" selected>Costa<\/option>\n                            <option value=\"sierra\">Sierra<\/option>\n                            <option value=\"selva\">Selva<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"control-section\">\n                    <h3>\ud83c\udfd7\ufe0f Sistema Constructivo<\/h3>\n                    <div class=\"form-group\">\n                        <label for=\"sistema\">Sistema Constructivo<\/label>\n                        <select id=\"sistema\" onchange=\"updateSimulation()\">\n                            <option value=\"albanileria\" selected>Alba\u00f1iler\u00eda Confinada<\/option>\n                            <option value=\"concreto\">Concreto Armado<\/option>\n                            <option value=\"madera\">Estructura de Madera<\/option>\n                            <option value=\"mixto\">Sistema Mixto<\/option>\n                        <\/select>\n                    <\/div>\n                    <div class=\"form-group\">\n                        <label for=\"acabado\">Tipo de Acabado<\/label>\n                        <select id=\"acabado\" onchange=\"updateSimulation()\">\n                            <option value=\"basico\">B\u00e1sico<\/option>\n                            <option value=\"intermedio\" selected>Intermedio<\/option>\n                            <option value=\"premium\">Premium<\/option>\n                        <\/select>\n                    <\/div>\n                    <div class=\"form-group\">\n                        <label for=\"vanos\">Proporci\u00f3n Vanos\/Muros (%)<\/label>\n                        <div class=\"range-group\">\n                            <input type=\"range\" id=\"vanos\" min=\"20\" max=\"60\" value=\"35\" oninput=\"updateSimulation()\">\n                            <span class=\"range-value\" id=\"vanos-value\">35<\/span>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n            <!-- Panel de Visualizaci\u00f3n -->\n            <div class=\"visualization-panel\">\n                <div class=\"metrics-display\">\n                    <h3>\ud83d\udcca M\u00e9tricas de Rendimiento<\/h3>\n                    <div class=\"metrics-grid\">\n                        <div class=\"metric-card\">\n                            <div class=\"metric-value\" id=\"eficiencia\">85<\/div>\n                            <div class=\"metric-label\">Eficiencia %<\/div>\n                        <\/div>\n                        <div class=\"metric-card\">\n                            <div class=\"metric-value\" id=\"carbono\">2.5<\/div>\n                            <div class=\"metric-label\">tCO\u2082 \/a\u00f1o<\/div>\n                        <\/div>\n                        <div class=\"metric-card\">\n                            <div class=\"metric-value\" id=\"costo\">120<\/div>\n                            <div class=\"metric-label\">Miles USD<\/div>\n                        <\/div>\n                        <div class=\"metric-card\">\n                            <div class=\"metric-value\" id=\"durabilidad\">25<\/div>\n                            <div class=\"metric-label\">A\u00f1os<\/div>\n                        <\/div>\n                    <\/div>\n\n                    <div class=\"chart-container\">\n                        <h4>Comparativa de Rendimiento<\/h4>\n                        <div class=\"chart\" id=\"performance-chart\">\n                            <!-- Las barras se generar\u00e1n din\u00e1micamente -->\n                        <\/div>\n                    <\/div>\n                <\/div>\n\n                <div class=\"comparison-table\">\n                    <table>\n                        <thead>\n                            <tr>\n                                <th>Aspecto<\/th>\n                                <th>Propuesta Original<\/th>\n                                <th>Propuesta Actual<\/th>\n                                <th>Mejora<\/th>\n                            <\/tr>\n                        <\/thead>\n                        <tbody id=\"comparison-body\">\n                            <!-- Se llena din\u00e1micamente -->\n                        <\/tbody>\n                    <\/table>\n                <\/div>\n\n                <div class=\"image-generation\">\n                    <h3>\ud83c\udfa8 Generador de Imagen Arquitect\u00f3nica<\/h3>\n                    <p>Genera una vista realista de tu dise\u00f1o usando IA<\/p>\n                    \n                    <div class=\"prompt-display\" id=\"prompt-display\">\n                        Prompt se generar\u00e1 autom\u00e1ticamente&#8230;\n                    <\/div>\n                    \n                    <button class=\"generate-btn\" id=\"generate-btn\" onclick=\"generateArchitecturalImage()\">\n                        Generar Imagen del Dise\u00f1o\n                    <\/button>\n                    \n                    <div class=\"loading\" id=\"loading\">\n                        <div class=\"spinner\"><\/div>\n                        <p>Generando imagen arquitect\u00f3nica&#8230;<\/p>\n                    <\/div>\n                    \n                    <div id=\"image-container\"><\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <script>\n        \/\/ Datos base para el simulador\n        const originalData = {\n            eficiencia: 75,\n            carbono: 3.2,\n            costo: 140,\n            durabilidad: 20\n        };\n\n        \/\/ Configuraciones de sistemas constructivos y acabados\n        const systemData = {\n            albanileria: { costo: 1.0, carbono: 1.0, durabilidad: 1.0, eficiencia: 0.9 },\n            concreto: { costo: 1.3, carbono: 1.4, durabilidad: 1.3, eficiencia: 0.95 },\n            madera: { costo: 1.1, carbono: 0.6, durabilidad: 0.8, eficiencia: 1.1 },\n            mixto: { costo: 1.2, carbono: 0.9, durabilidad: 1.1, eficiencia: 1.05 }\n        };\n\n        const finishData = {\n            basico: { costo: 0.8, carbono: 0.9, durabilidad: 0.85, eficiencia: 0.9 },\n            intermedio: { costo: 1.0, carbono: 1.0, durabilidad: 1.0, eficiencia: 1.0 },\n            premium: { costo: 1.4, carbono: 1.1, durabilidad: 1.2, eficiencia: 1.1 }\n        };\n\n        const climateData = {\n            costa: { eficiencia: 1.0, carbono: 1.0 },\n            sierra: { eficiencia: 0.9, carbono: 1.1 },\n            selva: { eficiencia: 1.1, carbono: 0.95 }\n        };\n\n        \/\/ Funci\u00f3n principal para actualizar la simulaci\u00f3n\n        function updateSimulation() {\n            updateRangeValues();\n            calculateMetrics();\n            updateChart();\n            updateComparisonTable();\n            updateArchitecturalPrompt();\n        }\n\n        \/\/ Actualizar valores de los rangesliders\n        function updateRangeValues() {\n            document.getElementById('largo-value').textContent = document.getElementById('largo').value;\n            document.getElementById('ancho-value').textContent = document.getElementById('ancho').value;\n            document.getElementById('vanos-value').textContent = document.getElementById('vanos').value;\n        }\n\n        \/\/ Calcular m\u00e9tricas basadas en la configuraci\u00f3n actual\n        function calculateMetrics() {\n            const largo = parseInt(document.getElementById('largo').value);\n            const ancho = parseInt(document.getElementById('ancho').value);\n            const pisos = parseInt(document.getElementById('pisos').value);\n            const sistema = document.getElementById('sistema').value;\n            const acabado = document.getElementById('acabado').value;\n            const clima = document.getElementById('clima').value;\n            const orientacion = document.getElementById('orientacion').value;\n            const vanos = parseInt(document.getElementById('vanos').value);\n\n            \/\/ Factores de c\u00e1lculo\n            const area = largo * ancho * pisos;\n            const sysData = systemData[sistema];\n            const finData = finishData[acabado];\n            const climData = climateData[clima];\n\n            \/\/ Factores de orientaci\u00f3n\n            const orientacionFactor = {\n                norte: { eficiencia: 1.1, carbono: 0.95 },\n                sur: { eficiencia: 0.9, carbono: 1.05 },\n                este: { eficiencia: 1.0, carbono: 1.0 },\n                oeste: { eficiencia: 0.95, carbono: 1.02 }\n            };\n\n            const oriFactor = orientacionFactor[orientacion];\n\n            \/\/ Factor de vanos (m\u00e1s vanos = m\u00e1s eficiencia pero m\u00e1s costo)\n            const vanosFactor = {\n                eficiencia: 0.8 + (vanos \/ 100),\n                costo: 0.9 + (vanos \/ 200),\n                carbono: 1.0 + ((vanos - 35) \/ 500)\n            };\n\n            \/\/ C\u00e1lculos\n            const eficiencia = Math.round(originalData.eficiencia * \n                sysData.eficiencia * finData.eficiencia * climData.eficiencia * \n                oriFactor.eficiencia * vanosFactor.eficiencia);\n\n            const carbono = (originalData.carbono * (area \/ 120) * \n                sysData.carbono * finData.carbono * climData.carbono * \n                oriFactor.carbono * vanosFactor.carbono).toFixed(1);\n\n            const costo = Math.round(originalData.costo * (area \/ 120) * \n                sysData.costo * finData.costo * vanosFactor.costo);\n\n            const durabilidad = Math.round(originalData.durabilidad * \n                sysData.durabilidad * finData.durabilidad);\n\n            \/\/ Actualizar la interfaz\n            document.getElementById('eficiencia').textContent = Math.min(eficiencia, 100);\n            document.getElementById('carbono').textContent = carbono;\n            document.getElementById('costo').textContent = costo;\n            document.getElementById('durabilidad').textContent = durabilidad;\n        }\n\n        \/\/ Actualizar gr\u00e1fico de barras\n        function updateChart() {\n            const eficiencia = parseInt(document.getElementById('eficiencia').textContent);\n            const carbono = parseFloat(document.getElementById('carbono').textContent);\n            const costo = parseInt(document.getElementById('costo').textContent);\n            const durabilidad = parseInt(document.getElementById('durabilidad').textContent);\n\n            const chartData = [\n                { label: 'Eficiencia', value: eficiencia, max: 100 },\n                { label: 'Sostenibilidad', value: Math.max(0, 100 - (carbono * 20)), max: 100 },\n                { label: 'Costo-Beneficio', value: Math.max(0, 100 - ((costo - 100) * 2)), max: 100 },\n                { label: 'Durabilidad', value: (durabilidad \/ 30) * 100, max: 100 }\n            ];\n\n            const chart = document.getElementById('performance-chart');\n            chart.innerHTML = '';\n\n            chartData.forEach(item => {\n                const bar = document.createElement('div');\n                bar.className = 'bar';\n                bar.style.height = `${(item.value \/ item.max) * 180}px`;\n                \n                const label = document.createElement('div');\n                label.className = 'bar-label';\n                label.textContent = item.label;\n                \n                const value = document.createElement('div');\n                value.className = 'bar-value';\n                value.textContent = Math.round(item.value);\n                \n                bar.appendChild(label);\n                bar.appendChild(value);\n                chart.appendChild(bar);\n            });\n        }\n\n        \/\/ Actualizar tabla comparativa\n        function updateComparisonTable() {\n            const currentEfficiency = parseInt(document.getElementById('eficiencia').textContent);\n            const currentCarbon = parseFloat(document.getElementById('carbono').textContent);\n            const currentCost = parseInt(document.getElementById('costo').textContent);\n            const currentDurability = parseInt(document.getElementById('durabilidad').textContent);\n\n            const comparisons = [\n                {\n                    aspect: 'Eficiencia Energ\u00e9tica',\n                    original: `${originalData.eficiencia}%`,\n                    current: `${currentEfficiency}%`,\n                    improvement: `${currentEfficiency - originalData.eficiencia > 0 ? '+' : ''}${currentEfficiency - originalData.eficiencia}%`\n                },\n                {\n                    aspect: 'Huella de Carbono',\n                    original: `${originalData.carbono} tCO\u2082`,\n                    current: `${currentCarbon} tCO\u2082`,\n                    improvement: `${currentCarbon - originalData.carbono < 0 ? '' : '+'}${(currentCarbon - originalData.carbono).toFixed(1)} tCO\u2082`\n                },\n                {\n                    aspect: 'Costo Total',\n                    original: `$${originalData.costo}k`,\n                    current: `$${currentCost}k`,\n                    improvement: `${currentCost - originalData.costo < 0 ? '' : '+'}$${currentCost - originalData.costo}k`\n                },\n                {\n                    aspect: 'Durabilidad',\n                    original: `${originalData.durabilidad} a\u00f1os`,\n                    current: `${currentDurability} a\u00f1os`,\n                    improvement: `${currentDurability - originalData.durabilidad > 0 ? '+' : ''}${currentDurability - originalData.durabilidad} a\u00f1os`\n                }\n            ];\n\n            const tbody = document.getElementById('comparison-body');\n            tbody.innerHTML = '';\n\n            comparisons.forEach(comp => {\n                const row = document.createElement('tr');\n                const improvementClass = comp.improvement.startsWith('+') ? 'positive' : \n                                       comp.improvement.startsWith('-') ? 'negative' : 'neutral';\n                \n                row.innerHTML = `\n                    <td><strong>${comp.aspect}<\/strong><\/td>\n                    <td>${comp.original}<\/td>\n                    <td>${comp.current}<\/td>\n                    <td class=\"${improvementClass}\">${comp.improvement}<\/td>\n                `;\n                tbody.appendChild(row);\n            });\n        }\n\n        \/\/ Generar prompt arquitect\u00f3nico basado en la configuraci\u00f3n actual\n        function updateArchitecturalPrompt() {\n            const largo = document.getElementById('largo').value;\n            const ancho = document.getElementById('ancho').value;\n            const pisos = document.getElementById('pisos').value;\n            const orientacion = document.getElementById('orientacion').value;\n            const clima = document.getElementById('clima').value;\n            const sistema = document.getElementById('sistema').value;\n            const acabado = document.getElementById('acabado').value;\n            const vanos = document.getElementById('vanos').value;\n\n            \/\/ Mapear valores a descripciones m\u00e1s descriptivas\n            const sistemaTexto = {\n                albanileria: 'muros de alba\u00f1iler\u00eda confinada con columnas de concreto',\n                concreto: 'estructura de concreto armado',\n                madera: 'estructura de madera sostenible',\n                mixto: 'sistema constructivo mixto de concreto y madera'\n            };\n\n            const acabadoTexto = {\n                basico: 'acabados b\u00e1sicos y funcionales',\n                intermedio: 'acabados intermedios con detalles modernos',\n                premium: 'acabados premium con materiales de alta calidad'\n            };\n\n            const climaTexto = {\n                costa: 'costa peruana con clima templado',\n                sierra: 'sierra peruana con clima fr\u00edo',\n                selva: 'selva peruana con clima tropical h\u00famedo'\n            };\n\n            \/\/ Construir el prompt arquitect\u00f3nico descriptivo\n            const prompt = `Vista frontal arquitect\u00f3nica de una vivienda unifamiliar de ${pisos} ${pisos === '1' ? 'piso' : 'pisos'} con dimensiones de ${largo}x${ancho} metros, orientada hacia el ${orientacion}, ubicada en la ${climaTexto[clima]}. La construcci\u00f3n utiliza ${sistemaTexto[sistema]} con ${acabadoTexto[acabado]}. El dise\u00f1o presenta una proporci\u00f3n de vanos del ${vanos}% con ventanas modernas y puertas amplias. Arquitectura contempor\u00e1nea y sostenible con l\u00edneas limpias, integraci\u00f3n con el paisaje, uso eficiente de la luz natural, y elementos que reflejan la arquitectura peruana moderna. Renderizado fotorrealista con cielo despejado y vegetaci\u00f3n apropiada para el clima.`;\n\n            document.getElementById('prompt-display').textContent = prompt;\n        }\n\n        \/\/ Funci\u00f3n para generar imagen arquitect\u00f3nica\n        async function generateArchitecturalImage() {\n            const generateBtn = document.getElementById('generate-btn');\n            const loading = document.getElementById('loading');\n            const imageContainer = document.getElementById('image-container');\n            const prompt = document.getElementById('prompt-display').textContent;\n\n            \/\/ Mostrar estado de carga\n            generateBtn.disabled = true;\n            generateBtn.textContent = 'Generando...';\n            loading.style.display = 'block';\n            imageContainer.innerHTML = '';\n\n            try {\n                \/\/ Llamada al endpoint backend\n                \/\/ NOTA: Aqu\u00ed debes cambiar la URL por la de tu servidor backend\n                const response = await fetch('http:\/\/localhost:3000\/api\/generate-image', {\n                    method: 'POST',\n                    headers: {\n                        'Content-Type': 'application\/json',\n                    },\n                    body: JSON.stringify({\n                        prompt: prompt,\n                        \/\/ Par\u00e1metros adicionales si es necesario\n                        aspectRatio: '16:9',\n                        style: 'architectural_rendering'\n                    })\n                });\n\n                if (!response.ok) {\n                    throw new Error(`Error del servidor: ${response.status}`);\n                }\n\n                const data = await response.json();\n\n                if (data.success && data.imageUrl) {\n                    \/\/ Mostrar la imagen generada\n                    const img = document.createElement('img');\n                    img.src = data.imageUrl;\n                    img.className = 'generated-image';\n                    img.alt = 'Dise\u00f1o arquitect\u00f3nico generado';\n                    \n                    \/\/ Bot\u00f3n de descarga\n                    const downloadBtn = document.createElement('button');\n                    downloadBtn.className = 'download-btn';\n                    downloadBtn.textContent = '\u2b07\ufe0f Descargar Imagen';\n                    downloadBtn.onclick = () => downloadImage(data.imageUrl);\n\n                    imageContainer.appendChild(img);\n                    imageContainer.appendChild(downloadBtn);\n                } else {\n                    throw new Error(data.error || 'Error desconocido al generar la imagen');\n                }\n\n            } catch (error) {\n                console.error('Error generando imagen:', error);\n                \n                \/\/ Mostrar mensaje de error al usuario\n                const errorDiv = document.createElement('div');\n                errorDiv.style.cssText = `\n                    background: #e74c3c;\n                    color: white;\n                    padding: 15px;\n                    border-radius: 10px;\n                    margin: 10px 0;\n                    text-align: center;\n                `;\n                errorDiv.innerHTML = `\n                    <strong>\u26a0\ufe0f Error al generar imagen<\/strong><br>\n                    ${error.message}<br>\n                    <small>Verifica que el servidor backend est\u00e9 funcionando<\/small>\n                `;\n                imageContainer.appendChild(errorDiv);\n\n            } finally {\n                \/\/ Restaurar estado del bot\u00f3n\n                generateBtn.disabled = false;\n                generateBtn.textContent = 'Generar Imagen del Dise\u00f1o';\n                loading.style.display = 'none';\n            }\n        }\n\n        \/\/ Funci\u00f3n para descargar la imagen generada\n        function downloadImage(imageUrl) {\n            const link = document.createElement('a');\n            link.href = imageUrl;\n            link.download = `diseno-arquitectonico-${Date.now()}.jpg`;\n            document.body.appendChild(link);\n            link.click();\n            document.body.removeChild(link);\n        }\n\n        \/\/ Inicializar simulador al cargar la p\u00e1gina\n        document.addEventListener('DOMContentLoaded', function() {\n            updateSimulation();\n            \n            \/\/ Agregar estilos din\u00e1micos para la tabla de comparaci\u00f3n\n            const style = document.createElement('style');\n            style.textContent = `\n                .positive { color: #27ae60; font-weight: bold; }\n                .negative { color: #e74c3c; font-weight: bold; }\n                .neutral { color: #7f8c8d; }\n            `;\n            document.head.appendChild(style);\n        });\n\n        \/\/ Funciones auxiliares para mejorar la experiencia de usuario\n        \n        \/\/ Animaci\u00f3n suave para las m\u00e9tricas\n        function animateMetricChange(elementId, newValue) {\n            const element = document.getElementById(elementId);\n            const currentValue = parseFloat(element.textContent);\n            const increment = (newValue - currentValue) \/ 20;\n            let current = currentValue;\n            \n            const animation = setInterval(() => {\n                current += increment;\n                if ((increment > 0 && current >= newValue) || (increment < 0 &#038;&#038; current <= newValue)) {\n                    current = newValue;\n                    clearInterval(animation);\n                }\n                element.textContent = elementId === 'carbono' ? current.toFixed(1) : Math.round(current);\n            }, 20);\n        }\n\n        \/\/ Funci\u00f3n para exportar configuraci\u00f3n actual\n        function exportConfiguration() {\n            const config = {\n                dimensiones: {\n                    largo: document.getElementById('largo').value,\n                    ancho: document.getElementById('ancho').value,\n                    pisos: document.getElementById('pisos').value\n                },\n                configuracion: {\n                    orientacion: document.getElementById('orientacion').value,\n                    clima: document.getElementById('clima').value\n                },\n                construccion: {\n                    sistema: document.getElementById('sistema').value,\n                    acabado: document.getElementById('acabado').value,\n                    vanos: document.getElementById('vanos').value\n                },\n                metricas: {\n                    eficiencia: document.getElementById('eficiencia').textContent,\n                    carbono: document.getElementById('carbono').textContent,\n                    costo: document.getElementById('costo').textContent,\n                    durabilidad: document.getElementById('durabilidad').textContent\n                },\n                prompt: document.getElementById('prompt-display').textContent,\n                timestamp: new Date().toISOString()\n            };\n\n            const dataStr = JSON.stringify(config, null, 2);\n            const dataBlob = new Blob([dataStr], {type: 'application\/json'});\n            \n            const link = document.createElement('a');\n            link.href = URL.createObjectURL(dataBlob);\n            link.download = `configuracion-arquitectonica-${Date.now()}.json`;\n            link.click();\n        }\n\n        \/\/ Funci\u00f3n para validar entrada de usuario\n        function validateInputs() {\n            const largo = parseInt(document.getElementById('largo').value);\n            const ancho = parseInt(document.getElementById('ancho').value);\n            \n            if (largo < 8 || largo > 20) {\n                alert('El largo debe estar entre 8 y 20 metros');\n                return false;\n            }\n            \n            if (ancho < 6 || ancho > 15) {\n                alert('El ancho debe estar entre 6 y 15 metros');\n                return false;\n            }\n            \n            return true;\n        }\n\n        \/\/ Funci\u00f3n para resetear a valores por defecto\n        function resetToDefault() {\n            document.getElementById('largo').value = 12;\n            document.getElementById('ancho').value = 10;\n            document.getElementById('pisos').value = 2;\n            document.getElementById('orientacion').value = 'norte';\n            document.getElementById('clima').value = 'costa';\n            document.getElementById('sistema').value = 'albanileria';\n            document.getElementById('acabado').value = 'intermedio';\n            document.getElementById('vanos').value = 35;\n            \n            updateSimulation();\n        }\n\n        \/\/ Agregar tooltips informativos\n        function addTooltips() {\n            const tooltips = {\n                'largo': 'Dimensi\u00f3n frontal de la vivienda en metros',\n                'ancho': 'Profundidad de la vivienda en metros',\n                'pisos': 'N\u00famero total de niveles habitables',\n                'orientacion': 'Direcci\u00f3n hacia la que mira la fachada principal',\n                'clima': 'Zona clim\u00e1tica que afecta el dise\u00f1o t\u00e9rmico',\n                'sistema': 'M\u00e9todo constructivo principal de la estructura',\n                'acabado': 'Nivel de calidad de los materiales de acabado',\n                'vanos': 'Porcentaje de \u00e1rea de ventanas y puertas respecto al muro'\n            };\n\n            Object.keys(tooltips).forEach(id => {\n                const element = document.getElementById(id);\n                if (element) {\n                    element.title = tooltips[id];\n                }\n            });\n        }\n\n        \/\/ Inicializar tooltips cuando se carga la p\u00e1gina\n        document.addEventListener('DOMContentLoaded', function() {\n            addTooltips();\n        });\n\n        \/\/ Funci\u00f3n para compartir configuraci\u00f3n (simulada)\n        function shareConfiguration() {\n            const config = {\n                largo: document.getElementById('largo').value,\n                ancho: document.getElementById('ancho').value,\n                pisos: document.getElementById('pisos').value,\n                orientacion: document.getElementById('orientacion').value,\n                clima: document.getElementById('clima').value,\n                sistema: document.getElementById('sistema').value,\n                acabado: document.getElementById('acabado').value,\n                vanos: document.getElementById('vanos').value\n            };\n\n            const configString = btoa(JSON.stringify(config));\n            const shareUrl = `${window.location.origin}${window.location.pathname}?config=${configString}`;\n            \n            if (navigator.share) {\n                navigator.share({\n                    title: 'Configuraci\u00f3n de Dise\u00f1o Arquitect\u00f3nico',\n                    text: 'Mira esta configuraci\u00f3n de dise\u00f1o sostenible',\n                    url: shareUrl\n                });\n            } else {\n                navigator.clipboard.writeText(shareUrl).then(() => {\n                    alert('URL de configuraci\u00f3n copiada al portapapeles');\n                });\n            }\n        }\n\n        \/\/ Cargar configuraci\u00f3n desde URL si existe\n        function loadConfigurationFromURL() {\n            const urlParams = new URLSearchParams(window.location.search);\n            const configParam = urlParams.get('config');\n            \n            if (configParam) {\n                try {\n                    const config = JSON.parse(atob(configParam));\n                    \n                    \/\/ Aplicar configuraci\u00f3n\n                    Object.keys(config).forEach(key => {\n                        const element = document.getElementById(key);\n                        if (element) {\n                            element.value = config[key];\n                        }\n                    });\n                    \n                    updateSimulation();\n                } catch (error) {\n                    console.error('Error cargando configuraci\u00f3n desde URL:', error);\n                }\n            }\n        }\n\n        \/\/ Cargar configuraci\u00f3n al inicializar\n        document.addEventListener('DOMContentLoaded', function() {\n            loadConfigurationFromURL();\n        });\n    <\/script>\n<\/body>\n<\/html>\n","protected":false},"excerpt":{"rendered":"<p>Simulador de Dise\u00f1oArquitect\u00f3nico para ajustar propuestasarquitect\u00f3nicas iniciales. Simulador de Dise\u00f1o Arquitect\u00f3nico Sostenible \ud83c\udfd7\ufe0f Simulador de Dise\u00f1o Arquitect\u00f3nico Sostenible Optimiza tu dise\u00f1o para eficiencia energ\u00e9tica y sostenibilidad \ud83d\udcd0 Dimensiones Largo (m) 12 Ancho (m) 10 N\u00famero de Pisos 1 Piso2 Pisos3 Pisos \ud83e\udded Configuraci\u00f3n Orientaci\u00f3n NorteSurEsteOeste Ubicaci\u00f3n Clim\u00e1tica CostaSierraSelva \ud83c\udfd7\ufe0f Sistema Constructivo Sistema Constructivo Alba\u00f1iler\u00eda ConfinadaConcreto [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-4975","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v17.9 (Yoast SEO v27.5) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Simulador de Dise\u00f1oArquitect\u00f3nico para ajustar propuestasarquitect\u00f3nicas iniciales.<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/eviluservice.com\/blog\/simulador-de-disenoarquitectonico-para-ajustar-propuestasarquitectonicas-iniciales\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Simulador de Dise\u00f1oArquitect\u00f3nico para ajustar propuestasarquitect\u00f3nicas iniciales.\" \/>\n<meta property=\"og:description\" content=\"Simulador de Dise\u00f1oArquitect\u00f3nico para ajustar propuestasarquitect\u00f3nicas iniciales. Simulador de Dise\u00f1o Arquitect\u00f3nico Sostenible \ud83c\udfd7\ufe0f Simulador de Dise\u00f1o Arquitect\u00f3nico Sostenible Optimiza tu dise\u00f1o para eficiencia energ\u00e9tica y sostenibilidad \ud83d\udcd0 Dimensiones Largo (m) 12 Ancho (m) 10 N\u00famero de Pisos 1 Piso2 Pisos3 Pisos \ud83e\udded Configuraci\u00f3n Orientaci\u00f3n NorteSurEsteOeste Ubicaci\u00f3n Clim\u00e1tica CostaSierraSelva \ud83c\udfd7\ufe0f Sistema Constructivo Sistema Constructivo Alba\u00f1iler\u00eda ConfinadaConcreto [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/eviluservice.com\/blog\/simulador-de-disenoarquitectonico-para-ajustar-propuestasarquitectonicas-iniciales\/\" \/>\n<meta property=\"og:site_name\" content=\"Arquitecto y Asesor Inmobiliario\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/EviluService\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-02T03:02:23+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minuto\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/eviluservice.com\\\/blog\\\/simulador-de-disenoarquitectonico-para-ajustar-propuestasarquitectonicas-iniciales\\\/\",\"url\":\"https:\\\/\\\/eviluservice.com\\\/blog\\\/simulador-de-disenoarquitectonico-para-ajustar-propuestasarquitectonicas-iniciales\\\/\",\"name\":\"Simulador de Dise\u00f1oArquitect\u00f3nico para ajustar propuestasarquitect\u00f3nicas iniciales.\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/eviluservice.com\\\/blog\\\/#website\"},\"datePublished\":\"2025-06-02T02:43:00+00:00\",\"dateModified\":\"2025-06-02T03:02:23+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/eviluservice.com\\\/blog\\\/simulador-de-disenoarquitectonico-para-ajustar-propuestasarquitectonicas-iniciales\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/eviluservice.com\\\/blog\\\/simulador-de-disenoarquitectonico-para-ajustar-propuestasarquitectonicas-iniciales\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/eviluservice.com\\\/blog\\\/simulador-de-disenoarquitectonico-para-ajustar-propuestasarquitectonicas-iniciales\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/eviluservice.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Simulador de Dise\u00f1oArquitect\u00f3nico para ajustar propuestasarquitect\u00f3nicas iniciales.\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/eviluservice.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/eviluservice.com\\\/blog\\\/\",\"name\":\"Arquitecto y Asesor Inmobiliario\",\"description\":\"Saneamiento F&iacute;sico Legal y Asesoramiento Inmobiliario\",\"publisher\":{\"@id\":\"https:\\\/\\\/eviluservice.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/eviluservice.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/eviluservice.com\\\/blog\\\/#organization\",\"name\":\"Arquitecto y Asesor Inmobiliario\",\"url\":\"https:\\\/\\\/eviluservice.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/eviluservice.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/eviluservice.com\\\/wp-content\\\/uploads\\\/2023\\\/08\\\/Logo_papa3_0001-removebg-preview.png\",\"contentUrl\":\"https:\\\/\\\/eviluservice.com\\\/wp-content\\\/uploads\\\/2023\\\/08\\\/Logo_papa3_0001-removebg-preview.png\",\"width\":424,\"height\":589,\"caption\":\"Arquitecto y Asesor Inmobiliario\"},\"image\":{\"@id\":\"https:\\\/\\\/eviluservice.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/EviluService\",\"https:\\\/\\\/www.instagram.com\\\/eviluservice\\\/\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCLiriukfrZW370Ev1EulMcA\",\"https:\\\/\\\/www.tiktok.com\\\/@juangarplanet\"]}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Simulador de Dise\u00f1oArquitect\u00f3nico para ajustar propuestasarquitect\u00f3nicas iniciales.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/eviluservice.com\/blog\/simulador-de-disenoarquitectonico-para-ajustar-propuestasarquitectonicas-iniciales\/","og_locale":"es_ES","og_type":"article","og_title":"Simulador de Dise\u00f1oArquitect\u00f3nico para ajustar propuestasarquitect\u00f3nicas iniciales.","og_description":"Simulador de Dise\u00f1oArquitect\u00f3nico para ajustar propuestasarquitect\u00f3nicas iniciales. Simulador de Dise\u00f1o Arquitect\u00f3nico Sostenible \ud83c\udfd7\ufe0f Simulador de Dise\u00f1o Arquitect\u00f3nico Sostenible Optimiza tu dise\u00f1o para eficiencia energ\u00e9tica y sostenibilidad \ud83d\udcd0 Dimensiones Largo (m) 12 Ancho (m) 10 N\u00famero de Pisos 1 Piso2 Pisos3 Pisos \ud83e\udded Configuraci\u00f3n Orientaci\u00f3n NorteSurEsteOeste Ubicaci\u00f3n Clim\u00e1tica CostaSierraSelva \ud83c\udfd7\ufe0f Sistema Constructivo Sistema Constructivo Alba\u00f1iler\u00eda ConfinadaConcreto [&hellip;]","og_url":"https:\/\/eviluservice.com\/blog\/simulador-de-disenoarquitectonico-para-ajustar-propuestasarquitectonicas-iniciales\/","og_site_name":"Arquitecto y Asesor Inmobiliario","article_publisher":"https:\/\/www.facebook.com\/EviluService","article_modified_time":"2025-06-02T03:02:23+00:00","twitter_card":"summary_large_image","twitter_misc":{"Tiempo de lectura":"1 minuto"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/eviluservice.com\/blog\/simulador-de-disenoarquitectonico-para-ajustar-propuestasarquitectonicas-iniciales\/","url":"https:\/\/eviluservice.com\/blog\/simulador-de-disenoarquitectonico-para-ajustar-propuestasarquitectonicas-iniciales\/","name":"Simulador de Dise\u00f1oArquitect\u00f3nico para ajustar propuestasarquitect\u00f3nicas iniciales.","isPartOf":{"@id":"https:\/\/eviluservice.com\/blog\/#website"},"datePublished":"2025-06-02T02:43:00+00:00","dateModified":"2025-06-02T03:02:23+00:00","breadcrumb":{"@id":"https:\/\/eviluservice.com\/blog\/simulador-de-disenoarquitectonico-para-ajustar-propuestasarquitectonicas-iniciales\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/eviluservice.com\/blog\/simulador-de-disenoarquitectonico-para-ajustar-propuestasarquitectonicas-iniciales\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/eviluservice.com\/blog\/simulador-de-disenoarquitectonico-para-ajustar-propuestasarquitectonicas-iniciales\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/eviluservice.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Simulador de Dise\u00f1oArquitect\u00f3nico para ajustar propuestasarquitect\u00f3nicas iniciales."}]},{"@type":"WebSite","@id":"https:\/\/eviluservice.com\/blog\/#website","url":"https:\/\/eviluservice.com\/blog\/","name":"Arquitecto y Asesor Inmobiliario","description":"Saneamiento F&iacute;sico Legal y Asesoramiento Inmobiliario","publisher":{"@id":"https:\/\/eviluservice.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/eviluservice.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/eviluservice.com\/blog\/#organization","name":"Arquitecto y Asesor Inmobiliario","url":"https:\/\/eviluservice.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/eviluservice.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/eviluservice.com\/wp-content\/uploads\/2023\/08\/Logo_papa3_0001-removebg-preview.png","contentUrl":"https:\/\/eviluservice.com\/wp-content\/uploads\/2023\/08\/Logo_papa3_0001-removebg-preview.png","width":424,"height":589,"caption":"Arquitecto y Asesor Inmobiliario"},"image":{"@id":"https:\/\/eviluservice.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/EviluService","https:\/\/www.instagram.com\/eviluservice\/","https:\/\/www.youtube.com\/channel\/UCLiriukfrZW370Ev1EulMcA","https:\/\/www.tiktok.com\/@juangarplanet"]}]}},"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false},"uagb_author_info":{"display_name":"eviluservice","author_link":"https:\/\/eviluservice.com\/blog\/author\/admin\/"},"uagb_comment_info":0,"uagb_excerpt":"Simulador de Dise\u00f1oArquitect\u00f3nico para ajustar propuestasarquitect\u00f3nicas iniciales. Simulador de Dise\u00f1o Arquitect\u00f3nico Sostenible \ud83c\udfd7\ufe0f Simulador de Dise\u00f1o Arquitect\u00f3nico Sostenible Optimiza tu dise\u00f1o para eficiencia energ\u00e9tica y sostenibilidad \ud83d\udcd0 Dimensiones Largo (m) 12 Ancho (m) 10 N\u00famero de Pisos 1 Piso2 Pisos3 Pisos \ud83e\udded Configuraci\u00f3n Orientaci\u00f3n NorteSurEsteOeste Ubicaci\u00f3n Clim\u00e1tica CostaSierraSelva \ud83c\udfd7\ufe0f Sistema Constructivo Sistema Constructivo Alba\u00f1iler\u00eda ConfinadaConcreto&hellip;","_links":{"self":[{"href":"https:\/\/eviluservice.com\/blog\/wp-json\/wp\/v2\/pages\/4975","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/eviluservice.com\/blog\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/eviluservice.com\/blog\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/eviluservice.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/eviluservice.com\/blog\/wp-json\/wp\/v2\/comments?post=4975"}],"version-history":[{"count":1,"href":"https:\/\/eviluservice.com\/blog\/wp-json\/wp\/v2\/pages\/4975\/revisions"}],"predecessor-version":[{"id":4976,"href":"https:\/\/eviluservice.com\/blog\/wp-json\/wp\/v2\/pages\/4975\/revisions\/4976"}],"wp:attachment":[{"href":"https:\/\/eviluservice.com\/blog\/wp-json\/wp\/v2\/media?parent=4975"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}