{"id":225,"date":"2025-08-15T21:10:14","date_gmt":"2025-08-16T01:10:14","guid":{"rendered":"https:\/\/tabeertariq.com\/?page_id=225"},"modified":"2025-08-25T22:12:06","modified_gmt":"2025-08-26T02:12:06","slug":"smarthinge-2","status":"publish","type":"page","link":"https:\/\/tabeertariq.com\/?page_id=225","title":{"rendered":"SmartHinge"},"content":{"rendered":"\n<div style=\"height:4px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<blockquote class=\"wp-block-quote alignwide is-layout-flow wp-block-quote-is-layout-flow\">\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>Project History: <\/strong>This the second part of the Penn Health Care Tool Kit. This script caters to the continued challenge of last minute design changes to entrance orientation, which changes all furnishing layout in the 3d space. More so to comply to regulations. <\/p>\n<\/blockquote>\n<\/blockquote>\n\n\n\n<div style=\"height:46px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<blockquote class=\"wp-block-quote alignwide has-text-align-center is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Automatically repositions and re-orients objects across defined boundaries while preserving adjacency rules<\/p>\n<\/blockquote>\n\n\n\n<div style=\"height:42px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Challenge<\/h2>\n\n\n\n<blockquote class=\"wp-block-quote alignwide is-layout-flow wp-block-quote-is-layout-flow\">\n<p>In any 3D environment, large healthcare and commercial projects, whether architectural models, AR scenes, or CAD prototypes changing the position or orientation of an object often disrupts its surrounding layout. This occurred very frequently on health care projects where clients would require door placement and orientation often late in the design cycle. A simple door flip can result into hours of rework because it is linked to the  furniture layouts, equipment placement, and clearances must all update accordingly. Manual updates are slow and error-prone, especially when positional offsets, orientation rules, and adjacency constraints must be maintained. <\/p>\n\n\n\n<p>This script was built to eliminate that friction: automatically detecting target doors by room type. Then mirrors them to the opposite side of their host wall, and ensuring precise offsets from adjacent walls. This insures that doors are in proper placement and are hosted to the walls.<\/p>\n<\/blockquote>\n\n\n\n<div class=\"wp-block-columns alignwide are-vertically-aligned-center is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-container-core-column-is-layout-0ab540ad wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img fetchpriority=\"high\" decoding=\"async\" width=\"800\" height=\"597\" src=\"https:\/\/tabeertariq.com\/wp-content\/uploads\/2025\/08\/tobegif2-ezgif.com-video-to-gif-converter-2.gif\" alt=\"\" class=\"wp-image-394\" style=\"aspect-ratio:4\/3;object-fit:cover\"\/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full wp-duotone-2a2a2a-fffefe-1\"><img decoding=\"async\" width=\"800\" height=\"597\" src=\"https:\/\/tabeertariq.com\/wp-content\/uploads\/2025\/08\/ezgif.com-video-to-gif-converter-3.gif\" alt=\"\" class=\"wp-image-398\" style=\"aspect-ratio:0.75;object-fit:cover\"\/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<blockquote class=\"wp-block-quote alignwide is-layout-flow wp-block-quote-is-layout-flow\">\n<h2 class=\"wp-block-heading\">Process<\/h2>\n\n\n\n<p><strong>Design rule<\/strong> for user: Users should define the specific room types before using the script and make sure all doors face inwards into rooms to avoid Revit API location detection errors.<\/p>\n<\/blockquote>\n\n\n\n<div class=\"wp-block-columns alignwide is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-style-default is-layout-flow wp-block-column-is-layout-flow\">\n<h2 class=\"wp-block-heading\"><em>Matrix<\/em><\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Filter target objects&nbsp;based on user-defined category or metadata (e.g. room type)<\/li>\n\n\n\n<li>Select and mirror objects&nbsp;to the opposite side of their primary host surface or reference geometry.<\/li>\n\n\n\n<li>Maintain fixed offset&nbsp;between the mirrored object and its nearest adjacent geometry (e.g., constant 6&#8243; clearance or other defined tolerance).<\/li>\n\n\n\n<li>Update object orientation&nbsp;so facing direction is consistent with the new mirrored position.<\/li>\n<\/ol>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h2 class=\"wp-block-heading\"><em>Features<\/em><\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Process all objects&nbsp;within the active model or scene.<\/li>\n\n\n\n<li>Filter objects dynamically&nbsp;by user-defined category, type, or tag.<\/li>\n\n\n\n<li>Scope control:&nbsp;Apply per level, layer, or active view context.<\/li>\n\n\n\n<li>Define mirror plane:&nbsp;Reference plane is derived from the central boundary of the host geometry.<\/li>\n\n\n\n<li>Constraint-based placement:&nbsp;Relocated objects maintain a fixed offset from the nearest adjacent geometry (e.g., 6&#8243; user defined tolerance).<\/li>\n<\/ol>\n<\/div>\n<\/div>\n\n\n\n<blockquote class=\"wp-block-quote alignwide is-layout-flow wp-block-quote-is-layout-flow\">\n<p>I built this system keeping Agile work flows in mind. The system was developed in small increments, starting with a simple mirror function and then layering in offsets, orientation control, tagging, and cleanup. Each step responded to real testing feedback and was kept modular, so new rules or object types can be added easily. This way the tool stayed flexible and could evolve quickly without breaking. At each step testing was carried out to reduce errors and work through minute complexities. <\/p>\n<\/blockquote>\n\n\n\n<blockquote class=\"wp-block-quote alignwide is-layout-flow wp-block-quote-is-layout-flow\">\n<h2 class=\"wp-block-heading\"><em>Design<\/em>:<\/h2>\n\n\n\n<p>System follows incremental logic, executed step by step through multiple iterations.<\/p>\n<\/blockquote>\n\n\n\n<blockquote class=\"wp-block-quote alignwide has-text-align-left is-layout-flow wp-block-quote-is-layout-flow\">\n<p><\/p>\n<\/blockquote>\n\n\n\n<blockquote class=\"wp-block-quote alignwide is-layout-flow wp-block-quote-is-layout-flow\">\n<p><\/p>\n<\/blockquote>\n\n\n\n<div class=\"wp-block-columns alignwide is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<ul class=\"wp-block-list\">\n<li>Select all rooms in Active view<\/li>\n\n\n\n<li><strong>Target Filtering<\/strong>: Filter rooms per user input<\/li>\n\n\n\n<li><strong>Boundary detection<\/strong>: Get room finish boundaries<\/li>\n\n\n\n<li>Get doors of filtered rooms<\/li>\n<\/ul>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<ul class=\"wp-block-list\">\n<li>Get door and host wall information<\/li>\n\n\n\n<li>Get room finish boundaries close to host wall location<\/li>\n\n\n\n<li>Get parallel and closer room boundary<\/li>\n<\/ul>\n<\/div>\n<\/div>\n\n\n\n<figure class=\"wp-block-gallery alignwide has-nested-images columns-default is-cropped wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"944\" height=\"1024\" data-id=\"402\" src=\"https:\/\/tabeertariq.com\/wp-content\/uploads\/2025\/08\/Tabeers-Computational-designboard-Frame-40-944x1024.jpg\" alt=\"\" class=\"wp-image-402\" srcset=\"https:\/\/tabeertariq.com\/wp-content\/uploads\/2025\/08\/Tabeers-Computational-designboard-Frame-40-944x1024.jpg 944w, https:\/\/tabeertariq.com\/wp-content\/uploads\/2025\/08\/Tabeers-Computational-designboard-Frame-40-277x300.jpg 277w, https:\/\/tabeertariq.com\/wp-content\/uploads\/2025\/08\/Tabeers-Computational-designboard-Frame-40-768x833.jpg 768w, https:\/\/tabeertariq.com\/wp-content\/uploads\/2025\/08\/Tabeers-Computational-designboard-Frame-40-1416x1536.jpg 1416w, https:\/\/tabeertariq.com\/wp-content\/uploads\/2025\/08\/Tabeers-Computational-designboard-Frame-40-1889x2048.jpg 1889w, https:\/\/tabeertariq.com\/wp-content\/uploads\/2025\/08\/Tabeers-Computational-designboard-Frame-40.jpg 1920w\" sizes=\"(max-width: 944px) 100vw, 944px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"944\" height=\"1024\" data-id=\"403\" src=\"https:\/\/tabeertariq.com\/wp-content\/uploads\/2025\/08\/Tabeers-Computational-designboard-Frame-41-944x1024.jpg\" alt=\"\" class=\"wp-image-403\" srcset=\"https:\/\/tabeertariq.com\/wp-content\/uploads\/2025\/08\/Tabeers-Computational-designboard-Frame-41-944x1024.jpg 944w, https:\/\/tabeertariq.com\/wp-content\/uploads\/2025\/08\/Tabeers-Computational-designboard-Frame-41-277x300.jpg 277w, https:\/\/tabeertariq.com\/wp-content\/uploads\/2025\/08\/Tabeers-Computational-designboard-Frame-41-768x833.jpg 768w, https:\/\/tabeertariq.com\/wp-content\/uploads\/2025\/08\/Tabeers-Computational-designboard-Frame-41-1416x1536.jpg 1416w, https:\/\/tabeertariq.com\/wp-content\/uploads\/2025\/08\/Tabeers-Computational-designboard-Frame-41-1889x2048.jpg 1889w, https:\/\/tabeertariq.com\/wp-content\/uploads\/2025\/08\/Tabeers-Computational-designboard-Frame-41.jpg 1920w\" sizes=\"(max-width: 944px) 100vw, 944px\" \/><\/figure>\n<\/figure>\n\n\n\n<div style=\"height:59px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-columns alignwide is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<ul class=\"wp-block-list\">\n<li><strong>Mirror plane generation<\/strong>: Create reference plane at center of finish boundary<\/li>\n\n\n\n<li><strong>Relocation logic<\/strong>: Mirror old door location based on constraints<\/li>\n\n\n\n<li>Host a new door to the door location.<\/li>\n<\/ul>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<ul class=\"wp-block-list\">\n<li><strong>Instance Tracking<\/strong>: Add Parameters to door family to filter old from new<\/li>\n\n\n\n<li><strong>Automated Cleanup<\/strong>: Check if door is old or new through assigned params. If new is places delete old door.<\/li>\n<\/ul>\n<\/div>\n<\/div>\n\n\n\n<figure class=\"wp-block-gallery alignwide has-nested-images columns-default is-cropped wp-block-gallery-3 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"796\" data-id=\"400\" src=\"https:\/\/tabeertariq.com\/wp-content\/uploads\/2025\/08\/Doorscriptgif1-ezgif.com-video-to-gif-converter.gif\" alt=\"\" class=\"wp-image-400\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"818\" data-id=\"401\" src=\"https:\/\/tabeertariq.com\/wp-content\/uploads\/2025\/08\/doorscript2-ezgif.com-video-to-gif-converter.gif\" alt=\"\" class=\"wp-image-401\"\/><\/figure>\n<\/figure>\n\n\n\n<div style=\"height:64px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-columns alignwide is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h2 class=\"wp-block-heading\"><em>Code<\/em><\/h2>\n<\/div>\n<\/div>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"769\" height=\"784\" src=\"https:\/\/tabeertariq.com\/wp-content\/uploads\/2025\/08\/Screenshot-2025-08-21-145215.png\" alt=\"\" class=\"wp-image-405\" srcset=\"https:\/\/tabeertariq.com\/wp-content\/uploads\/2025\/08\/Screenshot-2025-08-21-145215.png 769w, https:\/\/tabeertariq.com\/wp-content\/uploads\/2025\/08\/Screenshot-2025-08-21-145215-294x300.png 294w\" sizes=\"(max-width: 769px) 100vw, 769px\" \/><\/figure>\n\n\n\n<div style=\"height:64px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><em>Flow Diagram<\/em><\/h2>\n\n\n\n<div class=\"wp-block-group alignfull has-global-padding is-content-justification-center is-layout-constrained wp-block-group-is-layout-constrained\" style=\"margin-top:0;margin-bottom:0\">\n<div style=\"height:var(--wp--preset--spacing--20)\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-group alignwide is-layout-flow wp-block-group-is-layout-flow\">\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/tabeertariq.com\/wp-content\/uploads\/2025\/08\/Tabeers-Computational-designboard-Frame-43-1024x576.jpg\" alt=\"\" class=\"wp-image-406\" style=\"aspect-ratio:1.7777777777777777;object-fit:cover;width:1157px;height:auto\" srcset=\"https:\/\/tabeertariq.com\/wp-content\/uploads\/2025\/08\/Tabeers-Computational-designboard-Frame-43-1024x576.jpg 1024w, https:\/\/tabeertariq.com\/wp-content\/uploads\/2025\/08\/Tabeers-Computational-designboard-Frame-43-300x169.jpg 300w, https:\/\/tabeertariq.com\/wp-content\/uploads\/2025\/08\/Tabeers-Computational-designboard-Frame-43-768x432.jpg 768w, https:\/\/tabeertariq.com\/wp-content\/uploads\/2025\/08\/Tabeers-Computational-designboard-Frame-43-1536x864.jpg 1536w, https:\/\/tabeertariq.com\/wp-content\/uploads\/2025\/08\/Tabeers-Computational-designboard-Frame-43-2048x1152.jpg 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><em>Grasshopper Script<\/em><\/h2>\n\n\n\n<div class=\"wp-block-group alignfull has-global-padding is-content-justification-center is-layout-constrained wp-block-group-is-layout-constrained\" style=\"margin-top:0;margin-bottom:0\">\n<div style=\"height:var(--wp--preset--spacing--20)\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-group alignwide is-layout-flow wp-block-group-is-layout-flow\">\n<div class=\"wp-block-group alignfull has-global-padding is-content-justification-center is-layout-constrained wp-block-group-is-layout-constrained\" style=\"margin-top:0;margin-bottom:0\">\n<div class=\"wp-block-group alignwide is-layout-flow wp-block-group-is-layout-flow\">\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"578\" src=\"https:\/\/tabeertariq.com\/wp-content\/uploads\/2025\/08\/Artboard-1-1-1024x578.jpg\" alt=\"\" class=\"wp-image-414\" style=\"aspect-ratio:1.7777777777777777;object-fit:cover;width:1163px;height:auto\" srcset=\"https:\/\/tabeertariq.com\/wp-content\/uploads\/2025\/08\/Artboard-1-1-1024x578.jpg 1024w, https:\/\/tabeertariq.com\/wp-content\/uploads\/2025\/08\/Artboard-1-1-300x169.jpg 300w, https:\/\/tabeertariq.com\/wp-content\/uploads\/2025\/08\/Artboard-1-1-768x433.jpg 768w, https:\/\/tabeertariq.com\/wp-content\/uploads\/2025\/08\/Artboard-1-1-1536x867.jpg 1536w, https:\/\/tabeertariq.com\/wp-content\/uploads\/2025\/08\/Artboard-1-1-2048x1156.jpg 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<div style=\"height:var(--wp--preset--spacing--20)\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns alignwide is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h2 class=\"wp-block-heading\">Solution<\/h2>\n\n\n\n<p>A modular automation that reduces manual placement to a single step. It enforces strict adjacency and orientation constraints and this logic can works across different object types and environments. Since the product was developed iteratively, new constraints such as different types of doors, flipping conditions and clearances can be layered into the system. <\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h2 class=\"wp-block-heading\">Impact<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>This prototype originated in building design however its core logic can be deployed anywhere objects need to be repositioned intelligently. That is:<\/li>\n\n\n\n<li><strong>AR\/VR:<\/strong>&nbsp;Adjust props or UI panels dynamically as users move in physical space.<\/li>\n\n\n\n<li><strong>Robotics:<\/strong>&nbsp;Recalculate grasping\/placement positions relative to a workpiece.<\/li>\n\n\n\n<li><strong>CAD\/Manufacturing:<\/strong>&nbsp;Mirror or reposition components while maintaining assembly tolerances.<\/li>\n<\/ol>\n<\/div>\n<\/div>\n\n\n\n<div style=\"height:47px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading alignwide has-text-align-center\">Key Tech Stack<\/h2>\n\n\n\n<div class=\"wp-block-buttons alignwide is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-a89b3969 wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\">Python<\/a><\/div>\n\n\n\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\">Dynamo<\/a><\/div>\n\n\n\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\">Revit API<\/a><\/div>\n\n\n\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\">Rule based geometry manipulation<\/a><\/div>\n\n\n\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\">Vector Math<\/a><\/div>\n\n\n\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\">BIM<\/a><\/div>\n\n\n\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\">Productionization<\/a><\/div>\n\n\n\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\">User research<\/a><\/div>\n\n\n\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\">Time tracking<\/a><\/div>\n\n\n\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\">Spatial analysis<\/a><\/div>\n<\/div>\n\n\n\n<div style=\"height:48px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading alignwide has-text-align-center\">How I use it: User manual<\/h2>\n\n\n\n<div class=\"wp-block-buttons alignwide is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-a89b3969 wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link has-text-align-left wp-element-button\">User Manual for SmartHinge<\/a><\/div>\n<\/div>\n\n\n\n<div style=\"height:58px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<hr class=\"wp-block-separator alignwide has-alpha-channel-opacity\"\/>\n","protected":false},"excerpt":{"rendered":"<p>Automatically repositions and re-orients objects across defined boundaries while preserving adjacency rules Challenge In any 3D environment, large healthcare and commercial projects, whether architectural models, AR scenes, or CAD prototypes changing the position or orientation of an object often disrupts its surrounding layout. This occurred very frequently on health care projects where clients would require [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":11,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-225","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/tabeertariq.com\/index.php?rest_route=\/wp\/v2\/pages\/225","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tabeertariq.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/tabeertariq.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/tabeertariq.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tabeertariq.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=225"}],"version-history":[{"count":23,"href":"https:\/\/tabeertariq.com\/index.php?rest_route=\/wp\/v2\/pages\/225\/revisions"}],"predecessor-version":[{"id":801,"href":"https:\/\/tabeertariq.com\/index.php?rest_route=\/wp\/v2\/pages\/225\/revisions\/801"}],"up":[{"embeddable":true,"href":"https:\/\/tabeertariq.com\/index.php?rest_route=\/wp\/v2\/pages\/11"}],"wp:attachment":[{"href":"https:\/\/tabeertariq.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=225"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}