{"id":14990,"date":"2026-10-07T17:28:26","date_gmt":"2026-10-07T17:28:26","guid":{"rendered":"https:\/\/academy.filio.io\/?p=14990"},"modified":"2026-10-07T22:34:33","modified_gmt":"2026-10-07T22:34:33","slug":"create-interior-scan-plan-sheet-filio-data-collector","status":"publish","type":"post","link":"https:\/\/academy.filio.io\/create-interior-scan-plan-sheet-filio-data-collector\/","title":{"rendered":"How to Create an Interior Scan and Add It as a Plan Sheet in Filio Data Collector?"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"14990\" class=\"elementor elementor-14990\" data-elementor-post-type=\"post\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4461f3cc e-flex e-con-boxed e-con e-parent\" data-id=\"4461f3cc\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-12a3cd9b elementor-widget elementor-widget-text-editor\" data-id=\"12a3cd9b\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\n<p><style>.ff-academy{color:#2f353a;font-family:inherit;max-width:1120px;margin:auto}.ff-academy p,.ff-academy li{font-size:17px;line-height:1.7}.ff-academy p,.ff-academy ul,.ff-academy ol{max-width:74ch}.ff-academy h2{font-size:28px;line-height:1.3;margin:48px 0 18px}.ff-academy h3{font-size:23px;line-height:1.4;margin:36px 0 14px}.ff-academy figure{margin:26px auto 38px;width:100%}.ff-academy video{display:block;width:100%;height:auto;object-fit:contain;background:#fff}.ff-academy .ff-portrait{max-width:576px}.ff-academy figcaption{font-size:15px;line-height:1.6;margin-top:12px;color:#52565a}.ff-academy a{color:inherit;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}.ff-academy .ff-next{display:inline-block;background:#eaaa00;color:#2f353a;padding:12px 20px;border-radius:6px;font-weight:600;text-decoration:none}.ff-academy details{padding:14px 18px;border:1px solid #b8b8b8;margin:18px 0 32px}.ff-academy summary{font-weight:600;cursor:pointer}.ff-academy .ff-notes{border-left:4px solid #eaaa00;padding-left:20px;margin:30px 0}.ff-academy h2,.ff-academy h3{scroll-margin-top:180px}.ff-step-media{width:100%;max-width:310px;margin:26px auto 38px;border:1px solid #b8b8b8;padding:4px;border-radius:12px;box-sizing:border-box;background:#fff}.ff-step-media video,.ff-step-media img{display:block;width:100%;height:auto;object-fit:contain;background:#fff}<\/style><style id=\"filio-interior-polish-style\">\n.ff-academy.ff-interior-polish figure.ff-step-media{max-width:310px;width:100%;margin:26px auto 38px;border:1px solid #b8b8b8;padding:4px;border-radius:12px;box-sizing:border-box;background:#fff}\n.ff-interior-polish .ff-product-crop{position:relative;width:100%;aspect-ratio:720\/1384;overflow:hidden;background:#fff;border-radius:7px}\n.ff-interior-polish .ff-product-crop>video,.ff-interior-polish .ff-product-crop>img,.ff-interior-polish .ff-product-crop>canvas{position:absolute;display:block;left:0;top:0;width:100%;max-width:none;height:auto;transform:translateY(-6.1538461538%);object-fit:contain;margin:0;border:0}\n.ff-interior-polish .ff-product-crop>video{pointer-events:none}\n.ff-interior-polish .ff-product-crop>video::-webkit-media-controls{display:none!important}\n.ff-interior-polish .ff-product-crop>.ff-motion-poster{display:none}\n.ff-interior-polish .ff-loop-reset{z-index:2;pointer-events:none;opacity:1;transition:opacity 160ms linear}\n.ff-interior-polish.is-reduced-motion .ff-product-crop>video,.ff-interior-polish.is-reduced-motion .ff-product-crop>.ff-loop-reset{display:none!important}.ff-interior-polish.is-reduced-motion .ff-product-crop>.ff-motion-poster{display:block}\n@media(prefers-reduced-motion:reduce){.ff-interior-polish .ff-product-crop>video,.ff-interior-polish .ff-product-crop>.ff-loop-reset{display:none!important}.ff-interior-polish .ff-product-crop>.ff-motion-poster{display:block}}\n<\/style><\/p>\n<div class=\"ff-academy ff-interior-polish\"><!-- Filio Four Feature review; source record 14418; unpublished draft only. -->\n<p>Use Interior Scan in Filio Data Collector to capture a room, review its 2D floor plan and 3D result, and use the reviewed scan in the project.<\/p>\n<h2>When to use this<\/h2>\n<p>Use this workflow when you need a reviewable room record connected to the intended project. Check that you can move safely around the space before starting.<\/p>\n<h2>Step-by-step<\/h2>\n<h3>1. Select the intended project<\/h3>\n<p>Select the intended project before starting a new capture.<\/p>\n<h3>2. Open Interior Scan<\/h3>\n<p>Enter <strong>Interior Scan<\/strong> in the selected project.<\/p>\n<figure class=\"ff-step-media\" data-source-file=\"INTERIOR SCAN.MP4\" data-source-start=\"0.3\" data-source-end=\"0.3\" data-source-sha256=\"292f705d0ab624bb37badb44ec30541b7cecb9a20b441ca222e96a97a684b5d5\" data-media-id=\"15039\">\n<div class=\"ff-product-crop\"><img fetchpriority=\"high\" decoding=\"async\" src=\"https:\/\/academy.filio.io\/wp-content\/uploads\/2026\/10\/filio-interior-open-interior-scan.jpg\" alt=\"Interior Scan screen with the Start Scan control.\" width=\"720\" height=\"1560\" \/><\/div>\n<\/figure>\n<h3>3. Start Scan<\/h3>\n<p>Review the instructions, then choose <strong>Start Scan<\/strong>.<\/p>\n<figure class=\"ff-step-media\" data-source-file=\"INTERIOR SCAN.MP4\" data-source-start=\"1.4\" data-source-end=\"4.4\" data-source-sha256=\"292f705d0ab624bb37badb44ec30541b7cecb9a20b441ca222e96a97a684b5d5\" data-media-id=\"15040\">\n<div class=\"ff-product-crop\"><video id=\"motion-filio-interior-start-scan\" poster=\"https:\/\/academy.filio.io\/wp-content\/uploads\/2026\/10\/filio-interior-start-scan-poster.jpg\" preload=\"auto\" autoplay=\"autoplay\" loop=\"loop\" muted=\"\" width=\"720\" height=\"1560\" aria-label=\"Start Scan opens guided capture in the selected project.\" data-loop-end=\"2.90\" data-loop-dwell=\"700\"><source src=\"https:\/\/academy.filio.io\/wp-content\/uploads\/2026\/10\/filio-interior-start-scan.mp4\" type=\"video\/mp4\" \/><\/video><img decoding=\"async\" class=\"ff-motion-poster\" src=\"https:\/\/academy.filio.io\/wp-content\/uploads\/2026\/10\/filio-interior-start-scan-poster.jpg\" alt=\"Start Scan opens guided capture in the selected project.\" width=\"720\" height=\"1560\" \/><\/div>\n<\/figure>\n<h3>4. Follow guided capture<\/h3>\n<p>Move slowly around the space and follow the prompts on your device, including guidance for the wall edges and room boundaries. Keep the area being captured visible as the room preview develops.<\/p>\n<figure class=\"ff-step-media\" data-source-file=\"INTERIOR SCAN.MP4\" data-source-start=\"5.8\" data-source-end=\"13.8\" data-source-sha256=\"292f705d0ab624bb37badb44ec30541b7cecb9a20b441ca222e96a97a684b5d5\" data-media-id=\"15041\">\n<div class=\"ff-product-crop\"><video id=\"motion-filio-interior-guided-capture\" poster=\"https:\/\/academy.filio.io\/wp-content\/uploads\/2026\/10\/filio-interior-guided-capture-poster.jpg\" preload=\"auto\" autoplay=\"autoplay\" loop=\"loop\" muted=\"\" width=\"720\" height=\"1560\" aria-label=\"Guided capture prompts show device movement and the top edge of the wall as room boundaries appear.\" data-loop-end=\"7.90\" data-loop-dwell=\"700\"><source src=\"https:\/\/academy.filio.io\/wp-content\/uploads\/2026\/10\/filio-interior-guided-capture.mp4\" type=\"video\/mp4\" \/><\/video><img decoding=\"async\" class=\"ff-motion-poster\" src=\"https:\/\/academy.filio.io\/wp-content\/uploads\/2026\/10\/filio-interior-guided-capture-poster.jpg\" alt=\"Guided capture prompts show device movement and the top edge of the wall as room boundaries appear.\" width=\"720\" height=\"1560\" \/><\/div>\n<\/figure>\n<h3>5. Finish Scan and wait for processing<\/h3>\n<p>When you are ready to end capture, choose <strong>Finish Scan<\/strong>. Wait for processing to finish and the result to open in <strong>Scan Review<\/strong>. The displayed processing steps describe the current job, not a guaranteed duration.<\/p>\n<figure class=\"ff-step-media\" data-source-file=\"INTERIOR SCAN.MP4\" data-source-start=\"144.7\" data-source-end=\"150.65\" data-source-sha256=\"292f705d0ab624bb37badb44ec30541b7cecb9a20b441ca222e96a97a684b5d5\" data-media-id=\"15042\">\n<div class=\"ff-product-crop\"><video id=\"motion-filio-interior-finish-process\" poster=\"https:\/\/academy.filio.io\/wp-content\/uploads\/2026\/10\/filio-interior-finish-process-poster.jpg\" preload=\"auto\" autoplay=\"autoplay\" loop=\"loop\" muted=\"\" width=\"720\" height=\"1560\" aria-label=\"Finish Scan leads to processing and a reviewable room result.\" data-loop-end=\"3.80\" data-loop-dwell=\"900\"><source src=\"https:\/\/academy.filio.io\/wp-content\/uploads\/2026\/10\/filio-interior-finish-process.mp4\" type=\"video\/mp4\" \/><\/video><img loading=\"lazy\" decoding=\"async\" class=\"ff-motion-poster\" src=\"https:\/\/academy.filio.io\/wp-content\/uploads\/2026\/10\/filio-interior-finish-process-poster.jpg\" alt=\"Finish Scan leads to processing and a reviewable room result.\" width=\"720\" height=\"1560\" \/><\/div>\n<\/figure>\n<h3>6. Review the 2D Floor Plan<\/h3>\n<p>In the scan review, check <strong>2D Floor Plan<\/strong> for the intended room. Check the represented boundaries and visible features against the space you captured.<\/p>\n<figure class=\"ff-step-media\" data-source-file=\"INTERIOR SCAN.MP4\" data-source-start=\"152.75\" data-source-end=\"152.75\" data-source-sha256=\"292f705d0ab624bb37badb44ec30541b7cecb9a20b441ca222e96a97a684b5d5\" data-media-id=\"15047\">\n<div class=\"ff-product-crop\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/academy.filio.io\/wp-content\/uploads\/2026\/10\/filio-interior-review-2d-floor-plan.jpg\" alt=\"The 2D Floor Plan review shows the captured room boundaries and visible features.\" width=\"720\" height=\"1560\" \/><\/div>\n<\/figure>\n<h3>7. Review the 3D Point Cloud<\/h3>\n<p>Review <strong>3D Point Cloud<\/strong> as well. Change the view and inspect the room representation before using the scan.<\/p>\n<figure class=\"ff-step-media\" data-source-file=\"INTERIOR SCAN.MP4\" data-source-start=\"150.25\" data-source-end=\"150.25\" data-source-sha256=\"292f705d0ab624bb37badb44ec30541b7cecb9a20b441ca222e96a97a684b5d5\" data-media-id=\"15048\">\n<div class=\"ff-product-crop\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/academy.filio.io\/wp-content\/uploads\/2026\/10\/filio-interior-review-3d-point-cloud.jpg\" alt=\"Scan Review with the 3D Point Cloud tab selected and the captured room result visible.\" width=\"720\" height=\"1560\" \/><\/div>\n<\/figure>\n<h3>8. Review details and use the scan<\/h3>\n<p>Review <strong>Scan Name<\/strong> and <strong>Space Type<\/strong>. Select <strong>Use This Scan<\/strong> to continue with the reviewed result. The current example does not require a separate destination-picker step.<\/p>\n<figure class=\"ff-step-media\" data-source-file=\"INTERIOR SCAN.MP4\" data-source-start=\"152.0\" data-source-end=\"158.6\" data-source-sha256=\"292f705d0ab624bb37badb44ec30541b7cecb9a20b441ca222e96a97a684b5d5\" data-media-id=\"15049\">\n<div class=\"ff-product-crop\"><video id=\"motion-filio-interior-use-this-scan\" poster=\"https:\/\/academy.filio.io\/wp-content\/uploads\/2026\/10\/filio-interior-use-this-scan-poster.jpg\" preload=\"auto\" autoplay=\"autoplay\" loop=\"loop\" muted=\"\" width=\"720\" height=\"1560\" aria-label=\"Use This Scan saves the reviewed room plan and returns to the project with a success confirmation.\" data-loop-end=\"6.10\" data-loop-dwell=\"700\"><source src=\"https:\/\/academy.filio.io\/wp-content\/uploads\/2026\/10\/filio-interior-use-this-scan.mp4\" type=\"video\/mp4\" \/><\/video><img loading=\"lazy\" decoding=\"async\" class=\"ff-motion-poster\" src=\"https:\/\/academy.filio.io\/wp-content\/uploads\/2026\/10\/filio-interior-use-this-scan-poster.jpg\" alt=\"Use This Scan saves the reviewed room plan and returns to the project with a success confirmation.\" width=\"720\" height=\"1560\" \/><\/div>\n<\/figure>\n<h3>9. Review project context<\/h3>\n<p>The demonstrated flow returns to the project 2D view and confirms that one room plan was saved. Review the saved result in the intended project and inspect its 2D and 3D views as needed.<\/p>\n<figure class=\"ff-step-media\" data-source-file=\"INTERIOR SCAN.MP4\" data-source-start=\"166.8\" data-source-end=\"173.05\" data-source-sha256=\"292f705d0ab624bb37badb44ec30541b7cecb9a20b441ca222e96a97a684b5d5\" data-media-id=\"15051\">\n<div class=\"ff-product-crop\"><video id=\"motion-filio-interior-review-project-result\" poster=\"https:\/\/academy.filio.io\/wp-content\/uploads\/2026\/10\/filio-interior-review-project-result-poster.jpg\" preload=\"auto\" autoplay=\"autoplay\" loop=\"loop\" muted=\"\" width=\"720\" height=\"1560\" aria-label=\"The saved room plan is reviewed in the project 2D view, then the 3D view is opened and rotated.\" data-loop-end=\"6.15\" data-loop-dwell=\"700\" data-mid-hold-at=\"1.20\" data-mid-hold-ms=\"800\"><source src=\"https:\/\/academy.filio.io\/wp-content\/uploads\/2026\/10\/filio-interior-review-project-result.mp4\" type=\"video\/mp4\" \/><\/video><img loading=\"lazy\" decoding=\"async\" class=\"ff-motion-poster\" src=\"https:\/\/academy.filio.io\/wp-content\/uploads\/2026\/10\/filio-interior-review-project-result-poster.jpg\" alt=\"The saved room plan is reviewed in the project 2D view, then the 3D view is opened and rotated.\" width=\"720\" height=\"1560\" \/><\/div>\n<\/figure>\n<div class=\"ff-notes\">\n<h2>Important notes<\/h2>\n<p>Review the captured coverage yourself. Visible dimensions and room counts do not establish survey accuracy, completeness or engineering acceptance.<\/p>\n<\/div>\n<h2>Related Academy guides<\/h2>\n<p>To capture media in plan context as you move through the room, see <a href=\"https:\/\/www.filio.io\/academy\/set-up-walking-placement-filio-data-collector\" target=\"_blank\" rel=\"noopener\">Walking Placement setup and review<\/a>. For a separate completed model, see <a href=\"https:\/\/www.filio.io\/academy\/how-do-i-review-and-measure-a-3d-model-in-filio\" target=\"_blank\" rel=\"noopener\">3D model navigation and measurement<\/a>.<\/p>\n<p><a class=\"ff-next\" href=\"https:\/\/www.filio.io\/academy\/how-to-create-and-compare-before-after-photos-in-filio-data-collector\" target=\"_blank\" rel=\"noopener\">Create and compare Before &amp; After photos<\/a><\/p>\n<\/div>\n\n<p><script id=\"filio-interior-teaching-loops\">\/* Interior 14990 only: restrained, source-faithful teaching loops. *\/\n(() => {\n  'use strict';\n  const init = () => {\n    const reduced = window.matchMedia('(prefers-reduced-motion: reduce)');\n    document.querySelectorAll('.ff-interior-polish').forEach(root => {\n      const controllers = [];\n      const setReduced = () => {\n        root.classList.toggle('is-reduced-motion', reduced.matches);\n        controllers.forEach(sync => sync());\n      };\n      root.querySelectorAll('video[data-loop-end]').forEach(video => {\n        if (video.dataset.ffLoopReady === '1') return;\n        video.dataset.ffLoopReady = '1';\n        const frame = video.closest('.ff-product-crop');\n        if (!frame) return;\n        const canvas = document.createElement('canvas');\n        canvas.className = 'ff-loop-reset';\n        canvas.setAttribute('aria-hidden', 'true');\n        Object.assign(canvas.style, {\n          position: 'absolute', pointerEvents: 'none', zIndex: '2',\n          opacity: '0', transition: 'none'\n        });\n        frame.appendChild(canvas);\n        const ctx = canvas.getContext('2d');\n        const number = (key, fallback) => {\n          const value = Number(video.dataset[key]);\n          return Number.isFinite(value) && value >= 0 ? value : fallback;\n        };\n        const requestedEnd = number('loopEnd', 3);\n        const dwell = number('loopDwell', 700);\n        const midAt = number('midHoldAt', 0);\n        const midDwell = number('midHoldMs', 0);\n        let state = 'playing', midDone = false, seen = true;\n        let timer = 0, timerDue = 0, remaining = 0, afterTimer = null;\n        let frameCallback = 0, fadeTimer = 0;\n        const rect = frame.getBoundingClientRect();\n        seen = rect.bottom > 0 && rect.top < window.innerHeight;\n        const active = () => seen && !document.hidden && !reduced.matches;\n        const end = () => Number.isFinite(video.duration)\n          ? Math.min(requestedEnd, Math.max(0, video.duration - 0.04))\n          : requestedEnd;\n        const clearClock = () => {\n          if (timer) {\n            remaining = Math.max(0, timerDue - performance.now());\n            clearTimeout(timer);\n            timer = 0;\n          }\n        };\n        const resumeClock = () => {\n          if (!afterTimer || timer || !active()) return;\n          timerDue = performance.now() + remaining;\n          timer = setTimeout(() => {\n            timer = 0;\n            const callback = afterTimer;\n            afterTimer = null;\n            callback();\n          }, remaining);\n        };\n        const wait = (ms, callback) => {\n          clearClock();\n          remaining = ms;\n          afterTimer = callback;\n          resumeClock();\n        };\n        const cancelFrame = () => {\n          if (frameCallback && video.cancelVideoFrameCallback) video.cancelVideoFrameCallback(frameCallback);\n          else if (frameCallback) cancelAnimationFrame(frameCallback);\n          frameCallback = 0;\n        };\n        const play = () => {\n          if (!active()) return;\n          const promise = video.play();\n          if (promise && promise.catch) promise.catch(() => {});\n        };\n        const snapshot = () => {\n          if (!ctx || !video.videoWidth || !video.videoHeight) return;\n          canvas.width = video.videoWidth;\n          canvas.height = video.videoHeight;\n          try {\n            ctx.drawImage(video, 0, 0, canvas.width, canvas.height);\n            canvas.style.transition = 'none';\n            canvas.style.opacity = '1';\n          } catch (_) { canvas.style.opacity = '0'; }\n        };\n        const reveal = () => {\n          if (state !== 'reveal' || !active()) return;\n          state = 'playing';\n          canvas.style.transition = 'opacity 160ms linear';\n          requestAnimationFrame(() => { canvas.style.opacity = '0'; });\n          clearTimeout(fadeTimer);\n          fadeTimer = setTimeout(() => {\n            if (state === 'playing') canvas.style.transition = 'none';\n          }, 180);\n          watch();\n        };\n        const resetReady = () => {\n          state = 'reveal';\n          if (!active()) return;\n          play();\n          if (video.requestVideoFrameCallback) {\n            frameCallback = video.requestVideoFrameCallback(() => {\n              frameCallback = 0;\n              reveal();\n            });\n          } else requestAnimationFrame(reveal);\n        };\n        const reset = () => {\n          state = 'reset-seek';\n          midDone = false;\n          video.currentTime = 0;\n        };\n        const holdEnd = () => {\n          state = 'dwell';\n          snapshot();\n          wait(dwell, reset);\n        };\n        const finish = () => {\n          state = 'end-seek';\n          video.pause();\n          cancelFrame();\n          const target = end();\n          if (Math.abs(video.currentTime - target) > 0.01) video.currentTime = target;\n          else holdEnd();\n        };\n        const tick = time => {\n          if (state !== 'playing' || !active() || video.seeking) return;\n          if (time >= end()) { finish(); return; }\n          if (!midDone && midAt > 0 && midDwell > 0 && time >= midAt) {\n            midDone = true;\n            state = 'mid-dwell';\n            video.pause();\n            cancelFrame();\n            wait(midDwell, () => { state = 'playing'; play(); watch(); });\n          }\n        };\n        function watch() {\n          if (frameCallback || state !== 'playing' || !active()) return;\n          if (video.requestVideoFrameCallback) {\n            frameCallback = video.requestVideoFrameCallback((_, metadata) => {\n              frameCallback = 0;\n              tick(metadata.mediaTime);\n              watch();\n            });\n          } else {\n            frameCallback = requestAnimationFrame(() => {\n              frameCallback = 0;\n              tick(video.currentTime);\n              watch();\n            });\n          }\n        }\n        const sync = () => {\n          if (!active()) {\n            video.pause();\n            clearClock();\n            cancelFrame();\n            return;\n          }\n          if (afterTimer) resumeClock();\n          else if (state === 'reveal') resetReady();\n          else if (state === 'playing') { play(); watch(); }\n        };\n        controllers.push(sync);\n        ['autoplay', 'muted', 'loop', 'playsinline'].forEach(name => video.setAttribute(name, ''));\n        video.autoplay = video.muted = video.defaultMuted = video.loop = video.playsInline = true;\n        video.controls = false;\n        video.removeAttribute('controls');\n        video.addEventListener('timeupdate', () => tick(video.currentTime));\n        video.addEventListener('seeked', () => {\n          if (state === 'end-seek') holdEnd();\n          else if (state === 'reset-seek') resetReady();\n        });\n        video.addEventListener('loadedmetadata', sync);\n        video.addEventListener('canplay', sync);\n        document.addEventListener('visibilitychange', sync);\n        if ('IntersectionObserver' in window) {\n          const observer = new IntersectionObserver(entries => {\n            seen = entries[0].isIntersecting;\n            sync();\n          }, { threshold: 0.01 });\n          observer.observe(frame);\n        }\n        sync();\n      });\n      setReduced();\n      if (reduced.addEventListener) reduced.addEventListener('change', setReduced);\n      else reduced.addListener(setReduced);\n    });\n  };\n  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', init, { once: true });\n  else init();\n})();\n<\/script><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Create an Interior Scan, review the 2D Floor Plan and 3D Point Cloud, check Scan Name and Space Type, then use the reviewed scan in the project.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[130,229],"tags":[2717,2708,2716,2709,2711,643,2690,2703,2712,2705,2706,2715,2707,2713,2704,2714,2710],"class_list":["post-14990","post","type-post","status-publish","format-standard","hentry","category-filio-mobile-app","category-project-plan-based-media","tag-2d","tag-2d-room-plan","tag-3d","tag-3d-room-model","tag-construction-site-documentation","tag-data-collector","tag-filio-data-collector","tag-filio-interior-scan","tag-interior","tag-interior-scanning","tag-mobile-plan-sheet","tag-room-scanning","tag-room-scanning-app","tag-scan","tag-scan-room-to-plan-sheet","tag-scanning","tag-spatial-documentation"],"acf":[],"_links":{"self":[{"href":"https:\/\/academy.filio.io\/wp-json\/wp\/v2\/posts\/14990","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/academy.filio.io\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/academy.filio.io\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/academy.filio.io\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/academy.filio.io\/wp-json\/wp\/v2\/comments?post=14990"}],"version-history":[{"count":16,"href":"https:\/\/academy.filio.io\/wp-json\/wp\/v2\/posts\/14990\/revisions"}],"predecessor-version":[{"id":15115,"href":"https:\/\/academy.filio.io\/wp-json\/wp\/v2\/posts\/14990\/revisions\/15115"}],"wp:attachment":[{"href":"https:\/\/academy.filio.io\/wp-json\/wp\/v2\/media?parent=14990"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/academy.filio.io\/wp-json\/wp\/v2\/categories?post=14990"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/academy.filio.io\/wp-json\/wp\/v2\/tags?post=14990"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}