{"id":2715,"date":"2024-08-28T13:14:17","date_gmt":"2024-08-28T11:14:17","guid":{"rendered":"https:\/\/easyrevitapi.com\/?page_id=2715"},"modified":"2024-09-28T00:51:55","modified_gmt":"2024-09-27T22:51:55","slug":"beautiful-docs","status":"publish","type":"page","link":"https:\/\/easyrevitapi.com\/index.php\/beautiful-docs\/","title":{"rendered":"Beautiful Docs"},"content":{"rendered":"\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"has-text-align-center\" style=\"margin-top:0;margin-bottom:0;padding-top:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--20);font-size:clamp(25.014px, 1.563rem + ((1vw - 3.2px) * 1.327), 42px);\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-palette-color-6-color\"><strong>Plans made clearer<\/strong><\/mark><\/p>\n\n\n\n<p class=\"has-text-align-center\" style=\"margin-top:0;margin-bottom:0;padding-top:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--20);font-size:clamp(25.014px, 1.563rem + ((1vw - 3.2px) * 1.327), 42px);line-height:0.3\"> <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-palette-color-7-color\">in few seconds.<\/mark><\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-ef350914 wp-block-columns-is-layout-flex\" style=\"padding-top:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--30)\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:370%\">\n<p class=\"has-text-align-center\" style=\"margin-top:0;margin-bottom:0;font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.313), 18px);line-height:1.3\">\u2022 Well-organized plans make the right information stand out.<\/p>\n\n\n\n<p class=\"has-text-align-center\" style=\"margin-top:var(--wp--preset--spacing--20);margin-bottom:var(--wp--preset--spacing--20);padding-top:0;padding-bottom:0;font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.313), 18px);line-height:1.3\">\u2022 Enhance readability with structured, appealing drawings at one click.<\/p>\n\n\n\n<p class=\"has-text-align-center\" style=\"margin-top:var(--wp--preset--spacing--20);margin-bottom:var(--wp--preset--spacing--20);padding-top:0;padding-bottom:0;font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.313), 18px);line-height:1.3\">\u2022 <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-palette-color-7-color\">Introducing Beautiful Docs, your AI-powered Add-in for Autodesk Revit<\/mark>.<\/p>\n<\/div>\n<\/div>\n\n\n\n<div style=\"height:24px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-columns 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\" style=\"flex-basis:25%\"><\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:240%\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"799\" height=\"404\" src=\"http:\/\/easyrevitapi.com\/wp-content\/uploads\/2024\/08\/GIFFORBLOG4.gif\" alt=\"\" class=\"wp-image-2742\"\/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:25%\"><\/div>\n<\/div>\n\n\n\n<div style=\"height:41px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"has-text-align-center\" style=\"margin-top:0;margin-bottom:0;padding-top:0;padding-bottom:0;font-size:clamp(18.959px, 1.185rem + ((1vw - 3.2px) * 0.863), 30px);\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-palette-color-7-color\">Get notified when it&#8217;s ready<\/mark><\/p>\n\n\n\n<div style=\"height:11px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-columns 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\" style=\"flex-basis:25%\"><\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:140%\">\n<p class=\"has-text-align-center\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-palette-color-6-color\">Join the waiting list to get updates on project progress and be notified when the add-in is available. <\/mark><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:25%\"><\/div>\n<\/div>\n\n\n<style id=\"wpforms-css-vars-root\">\n\t\t\t\t:root {\n\t\t\t\t\t--wpforms-field-border-radius: 3px;\n--wpforms-field-border-style: solid;\n--wpforms-field-border-size: 1px;\n--wpforms-field-background-color: #ffffff;\n--wpforms-field-border-color: rgba( 0, 0, 0, 0.25 );\n--wpforms-field-border-color-spare: rgba( 0, 0, 0, 0.25 );\n--wpforms-field-text-color: rgba( 0, 0, 0, 0.7 );\n--wpforms-field-menu-color: #ffffff;\n--wpforms-label-color: rgba( 0, 0, 0, 0.85 );\n--wpforms-label-sublabel-color: rgba( 0, 0, 0, 0.55 );\n--wpforms-label-error-color: #d63637;\n--wpforms-button-border-radius: 3px;\n--wpforms-button-border-style: none;\n--wpforms-button-border-size: 1px;\n--wpforms-button-background-color: #066aab;\n--wpforms-button-border-color: #066aab;\n--wpforms-button-text-color: #ffffff;\n--wpforms-page-break-color: #066aab;\n--wpforms-background-image: none;\n--wpforms-background-position: center center;\n--wpforms-background-repeat: no-repeat;\n--wpforms-background-size: cover;\n--wpforms-background-width: 100px;\n--wpforms-background-height: 100px;\n--wpforms-background-color: rgba( 0, 0, 0, 0 );\n--wpforms-background-url: none;\n--wpforms-container-padding: 0px;\n--wpforms-container-border-style: none;\n--wpforms-container-border-width: 1px;\n--wpforms-container-border-color: #000000;\n--wpforms-container-border-radius: 3px;\n--wpforms-field-size-input-height: 43px;\n--wpforms-field-size-input-spacing: 15px;\n--wpforms-field-size-font-size: 16px;\n--wpforms-field-size-line-height: 19px;\n--wpforms-field-size-padding-h: 14px;\n--wpforms-field-size-checkbox-size: 16px;\n--wpforms-field-size-sublabel-spacing: 5px;\n--wpforms-field-size-icon-size: 1;\n--wpforms-label-size-font-size: 16px;\n--wpforms-label-size-line-height: 19px;\n--wpforms-label-size-sublabel-font-size: 14px;\n--wpforms-label-size-sublabel-line-height: 17px;\n--wpforms-button-size-font-size: 17px;\n--wpforms-button-size-height: 41px;\n--wpforms-button-size-padding-h: 15px;\n--wpforms-button-size-margin-top: 10px;\n--wpforms-container-shadow-size-box-shadow: none;\n\n\t\t\t\t}\n\t\t\t<\/style><div class=\"wpforms-container wpforms-container-full wpforms-block wpforms-block-b8064ea9-17c0-4f27-93dd-88f500eac79e wpf-center wpforms-render-modern\" id=\"wpforms-2771\"><form id=\"wpforms-form-2771\" class=\"wpforms-validate wpforms-form wpforms-ajax-form\" data-formid=\"2771\" method=\"post\" enctype=\"multipart\/form-data\" action=\"\/index.php\/wp-json\/wp\/v2\/pages\/2715\" data-token=\"fb8d905664c74f7d0181a07ad50c956d\" data-token-time=\"1775863256\"><noscript class=\"wpforms-error-noscript\">Please enable JavaScript in your browser to complete this form.<\/noscript><div class=\"wpforms-hidden\" id=\"wpforms-error-noscript\">Please enable JavaScript in your browser to complete this form.<\/div><div class=\"wpforms-field-container\"><div id=\"wpforms-2771-field_2-container\" class=\"wpforms-field wpforms-field-email\" data-field-id=\"2\"><input type=\"email\" id=\"wpforms-2771-field_2\" class=\"wpforms-field-large\" name=\"wpforms[fields][2]\" placeholder=\"Your Email\" spellcheck=\"false\" aria-errormessage=\"wpforms-2771-field_2-error\" ><\/div><\/div><!-- .wpforms-field-container --><div class=\"wpforms-submit-container\" ><input type=\"hidden\" name=\"wpforms[id]\" value=\"2771\"><input type=\"hidden\" name=\"page_title\" value=\"\"><input type=\"hidden\" name=\"page_url\" value=\"https:\/\/easyrevitapi.com\/index.php\/wp-json\/wp\/v2\/pages\/2715\"><button type=\"submit\" name=\"wpforms[submit]\" id=\"wpforms-submit-2771\" class=\"wpforms-submit\" data-alt-text=\"Sending...\" data-submit-text=\"Send\" aria-live=\"assertive\" value=\"wpforms-submit\">Send<\/button><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/easyrevitapi.com\/wp-content\/plugins\/wpforms-lite\/assets\/images\/submit-spin.svg\" class=\"wpforms-submit-spinner\" style=\"display: none;\" width=\"26\" height=\"26\" alt=\"Loading\"><\/div><\/form><\/div>  <!-- .wpforms-container -->\n\n\n<div style=\"height:137px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<hr class=\"wp-block-separator has-text-color has-palette-color-7-color has-alpha-channel-opacity has-palette-color-7-background-color has-background is-style-wide\"\/>\n\n\n\n<p class=\"has-text-align-center\" style=\"margin-top:var(--wp--preset--spacing--50);margin-bottom:var(--wp--preset--spacing--50);padding-top:0;padding-right:0;padding-bottom:0;padding-left:0;font-size:clamp(22.041px, 1.378rem + ((1vw - 3.2px) * 1.091), 36px);\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-palette-color-7-color\"><strong>Behind the Build : The Development Notes<\/strong><\/mark><\/p>\n\n\n\n<div style=\"height:6px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<hr class=\"wp-block-separator has-text-color has-palette-color-7-color has-alpha-channel-opacity has-palette-color-7-background-color has-background is-style-wide\"\/>\n\n\n\n<div style=\"height:68px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading has-text-align-center\" style=\"margin-top:0;margin-bottom:0;font-size:clamp(21.027px, 1.314rem + ((1vw - 3.2px) * 1.014), 34px);\"><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-palette-color-6-color\">You shall not overlap !<\/mark><\/strong><\/h3>\n\n\n\n<div style=\"height:8px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"has-text-align-center\" style=\"font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.469), 20px);\"><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-palette-color-6-color\">24-09-2024<\/mark><\/strong><\/p>\n\n\n\n<p>I recently expanded my <strong>Convolutional Neural Network<\/strong> model\u2019s training dataset to <span style=\"text-decoration: underline;\">245 examples<\/span> of disorganized and organized plan tags. However, the expected improvements in prediction accuracy haven\u2019t materialized as significantly as I\u2019d hoped.<\/p>\n\n\n\n<p>This prompted me to revisit the model&#8217;s configuration, as outlined in my previous article. After refining the convolutional layer&#8217;s stride parameter, the model began making more relevant relationships during training. As a result, predictions have become more accurate, particularly in reducing tag overlap and positioning tags closer to their corresponding openings.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1501\" height=\"729\" src=\"https:\/\/easyrevitapi.com\/wp-content\/uploads\/2024\/09\/BeautifulDocs_Redim-2.gif\" alt=\"\" class=\"wp-image-2948\"\/><\/figure>\n\n\n\n<p>That said, the improvements are less apparent when dealing with linear patterns (e.g., walls) or rectangular structures (e.g., service shafts).<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1500\" height=\"729\" src=\"https:\/\/easyrevitapi.com\/wp-content\/uploads\/2024\/09\/BeautifulDocs_Redim-3.gif\" alt=\"\" class=\"wp-image-2949\"\/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>Overall, my goals for improvement remain:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-palette-color-7-color\">Eliminating tag overlap<\/mark><\/li>\n\n\n\n<li><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-palette-color-7-color\">Avoiding overlap between tags and openings<\/mark><\/li>\n\n\n\n<li><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-palette-color-7-color\">Positioning tags to reflect the pattern of their related openings<\/mark><\/li>\n<\/ul>\n\n\n\n<p>At this point, I need to balance adding more before-and-after examples of openings and adjusting the model\u2019s parameters.<\/p>\n\n\n\n<p>To be continued \ud83d\ude09<\/p>\n\n\n\n<div style=\"height:94px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading has-text-align-center\" style=\"margin-top:0;margin-bottom:0;font-size:clamp(21.027px, 1.314rem + ((1vw - 3.2px) * 1.014), 34px);\"><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-palette-color-6-color\">Improving the Accuracy of My CNN Model: <\/mark><\/strong><\/h3>\n\n\n\n<p class=\"has-text-align-center\" style=\"margin-top:var(--wp--preset--spacing--20);margin-bottom:var(--wp--preset--spacing--20);padding-top:0;padding-bottom:0;font-size:clamp(21.027px, 1.314rem + ((1vw - 3.2px) * 1.014), 34px);\"><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-palette-color-6-color\">A Structured Approach<\/mark><\/strong><\/p>\n\n\n\n<p class=\"has-text-align-center\" style=\"font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.469), 20px);\"><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-palette-color-6-color\">21-09-2024<\/mark><\/strong><br><\/p>\n\n\n\n<div style=\"height:33px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>I recently added more datasets to train my CNN model, aiming to improve its accuracy. However, the results haven&#8217;t shown significant improvement. This led me to reconsider how I configure the model and the factors affecting its performance.<\/p>\n\n\n\n<p>In deep learning, a model&#8217;s accuracy depends on three key factors:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-palette-color-7-color\">Training configuration<\/mark>: How the model is set up.<\/li>\n\n\n\n<li><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-palette-color-7-color\">Data structure:<\/mark> How the training data is organized.<\/li>\n\n\n\n<li><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-palette-color-7-color\">Data volume:<\/mark> The amount of data available for training.<\/li>\n<\/ol>\n\n\n\n<p>Since increasing the amount of data didn&#8217;t lead to better results, I started questioning whether the 250 input\/output examples I had were sufficient or if I needed to adjust the model&#8217;s training parameters.<\/p>\n\n\n\n<p>I decided to explore the latter by fine-tuning the training parameters. To make the necessary adjustments, I first sought to better understand how to configure the training of my CNN model. <\/p>\n\n\n\n<p>A CNN model is composed of of layers. A layer is set of structured computational functions, each serving a specific purpose and helping the model learn and extract features from the input data. A CNN model has three main types of layers :<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-palette-color-7-color\">Convolutional Layer<\/mark><\/li>\n\n\n\n<li><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-palette-color-7-color\">Pooling Layer<\/mark><\/li>\n\n\n\n<li><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-palette-color-7-color\">Fully Connected Layer<\/mark><\/li>\n<\/ol>\n\n\n\n<p>Given my focus on improving accuracy, I concentrated on the convolutional layer, which is crucial in identifying patterns in the data.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">The Role of the Convolutional Layer<\/h5>\n\n\n\n<p>Convolution in a CNN is about detecting small, localized patterns within the data. For example, I want my model to detect alignment and overlap patterns between a tag and its associated element.<br><br>For this purpose, I described each tag\/element pair in my dataset by several properties:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-palette-color-7-color\">Tag<\/mark>: Central point (X, Y), width, height<\/li>\n\n\n\n<li><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-palette-color-7-color\">Tagged Element<\/mark>: Central point (X, Y), width, height<\/li>\n<\/ul>\n\n\n\n<p>More specifically, I structured these properties as the following sequence : <\/p>\n\n\n\n<p><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-palette-color-7-color\">[Tag central point X coordinate, Tag central point Y coordinate, Tag Width, Tag height, Tagged element central point X coordinate, Tagged element central point Y coordinate,Tagged element width, Tagged element height]<\/mark><\/p>\n\n\n\n<p>Since these properties are organized in a sequential manner , a <strong>one-dimensional convolutional layer<\/strong> is used to process the data. The convolutional layer analyzes this input using a <strong>kernel<\/strong>, a function that acts as a sliding window, moving over the input sequence to capture relationships between adjacent values.<\/p>\n\n\n\n<p>Initially, my model compared two values at a time, but it didn&#8217;t always compare the most relevant ones. For example, it compared:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>T<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-palette-color-7-color\">ag central point X and Y coordinates<\/mark> (position pattern : <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-palette-color-6-color\"><strong>relevant<\/strong><\/mark><strong> <\/strong>)<\/li>\n\n\n\n<li><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-palette-color-7-color\">Tag Y coordinate and width<\/mark> (<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-palette-color-6-color\"><strong>not relevant<\/strong><\/mark>)<\/li>\n\n\n\n<li><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-palette-color-7-color\">Tag width and height<\/mark> (surface-related pattern : <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-palette-color-6-color\"><strong>relevant<\/strong><\/mark>)<\/li>\n<\/ul>\n\n\n\n<p>While the first and third comparisons were meaningful, the second comparison introduced irrelevant patterns. As a result, the model was being trained on non-relevant information, which likely caused inaccuracies in its predictions.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">The Importance of the Stride Parameter<\/h5>\n\n\n\n<p>The key to solving this issue lay in adjusting the <strong>stride<\/strong> parameter in the convolutional layer. The stride is a setting that controls the step size for comparing values in the input sequence.<\/p>\n\n\n\n<p>By using a stride value of two, the model now compares more relevant data points, such as:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-palette-color-7-color\">Tag central point X and Y coordinates<\/mark> (position : <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-palette-color-6-color\"><strong>relevant<\/strong><\/mark>)<\/li>\n\n\n\n<li><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-palette-color-7-color\">Tag width and height<\/mark> (surface : <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-palette-color-6-color\"><strong>relevant<\/strong><\/mark>)<\/li>\n\n\n\n<li><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-palette-color-7-color\">Tagged element central point X and Y coordinates<\/mark> (position : <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-palette-color-6-color\"><strong>relevant<\/strong><\/mark>)<\/li>\n\n\n\n<li><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-palette-color-7-color\">Tagged element width and height<\/mark> (surface : <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-palette-color-6-color\"><strong>relevant<\/strong><\/mark>)<\/li>\n<\/ul>\n\n\n\n<p>These comparisons are more meaningful and help the CNN model focus on the correct patterns in both the input and output sequences. As a result, the model&#8217;s logic for making predictions becomes more accurate.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<div style=\"height:97px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading has-text-align-center\" style=\"margin-top:0;margin-bottom:0;font-size:clamp(21.027px, 1.314rem + ((1vw - 3.2px) * 1.014), 34px);\"><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-palette-color-6-color\">Getting started <\/mark><\/strong><\/h3>\n\n\n\n<p class=\"has-text-align-center\" style=\"font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.469), 20px);\"><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-palette-color-6-color\">14-09-2024<\/mark><\/strong><\/p>\n\n\n\n<div style=\"height:51px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>I\u2019m developing an add-in for Autodesk Revit to streamline the organization of plan annotations, a task I learned the importance of during my time in architectural practice. Well-organized annotations not only make plans visually appealing but also help convey essential information quickly. The way annotations are arranged reflects echoes that of construction components, providing clarity and highlighting key issues.<\/p>\n\n\n\n<p>In my experience working in MEP coordination, we spent hours manually organizing tags for structural openings from various contractors\u2014HVAC, plumbing, electrical, etc. This repetitive task consumed days on large-scale projects, as each plan needed to be perfectly legible before being passed on for structural analysis.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"444\" src=\"https:\/\/easyrevitapi.com\/wp-content\/uploads\/2024\/09\/Nouveau-projet-27-1024x444.png\" alt=\"\" class=\"wp-image-2969\" srcset=\"https:\/\/easyrevitapi.com\/wp-content\/uploads\/2024\/09\/Nouveau-projet-27-1024x444.png 1024w, https:\/\/easyrevitapi.com\/wp-content\/uploads\/2024\/09\/Nouveau-projet-27-300x130.png 300w, https:\/\/easyrevitapi.com\/wp-content\/uploads\/2024\/09\/Nouveau-projet-27-768x333.png 768w, https:\/\/easyrevitapi.com\/wp-content\/uploads\/2024\/09\/Nouveau-projet-27-1536x666.png 1536w, https:\/\/easyrevitapi.com\/wp-content\/uploads\/2024\/09\/Nouveau-projet-27-2048x888.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>To address this, I initially created a Dynamo script that used rule-based logic to detect and eliminate overlapping tags. While helpful, it struggled with complex plans, failing to recognize patterns like linear or rectangular arrangements of openings.<\/p>\n\n\n\n<p>This led me to explore AI as a more scalable solution. AI offers the potential to better handle larger plans while producing quicker, more accurate results. Moving forward, I\u2019ll document my journey, exploring how AI can enhance Revit workflows, the challenges faced, and the lessons learned.<\/p>\n\n\n\n<p class=\"has-text-align-center\"><strong>Let&#8217;s get started \ud83d\ude09<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"444\" src=\"https:\/\/easyrevitapi.com\/wp-content\/uploads\/2024\/09\/Nouveau-projet-26-1024x444.png\" alt=\"\" class=\"wp-image-2968\" srcset=\"https:\/\/easyrevitapi.com\/wp-content\/uploads\/2024\/09\/Nouveau-projet-26-1024x444.png 1024w, https:\/\/easyrevitapi.com\/wp-content\/uploads\/2024\/09\/Nouveau-projet-26-300x130.png 300w, https:\/\/easyrevitapi.com\/wp-content\/uploads\/2024\/09\/Nouveau-projet-26-768x333.png 768w, https:\/\/easyrevitapi.com\/wp-content\/uploads\/2024\/09\/Nouveau-projet-26-1536x666.png 1536w, https:\/\/easyrevitapi.com\/wp-content\/uploads\/2024\/09\/Nouveau-projet-26-2048x888.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Plans made clearer in few seconds. \u2022 Well-organized plans make the right information stand out. \u2022 Enhance readability with structured, appealing drawings at one click. \u2022 Introducing Beautiful Docs, your AI-powered Add-in for Autodesk Revit. Get notified when it&#8217;s ready Join the waiting list to get updates on project progress and be notified when the [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-2715","page","type-page","status-publish","hentry"],"blocksy_meta":{"background":{"desktop":{"background_type":"pattern","background_pattern":"type-8","background_image":{"attachment_id":null,"x":0,"y":0},"gradient":"linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%)","background_repeat":"repeat","background_size":"auto","background_attachment":"scroll","patternColor":{"default":{"color":"rgba(230, 232, 235, 0.61)"}},"overlayColor":{"default":{"color":"CT_CSS_SKIP_RULE"}},"backgroundColor":{"default":{"color":"#ffffff"}}},"tablet":{"background_type":"pattern","background_pattern":"type-8","background_image":{"attachment_id":null,"x":0,"y":0},"gradient":"linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%)","background_repeat":"repeat","background_size":"auto","background_attachment":"scroll","patternColor":{"default":{"color":"rgba(230, 232, 235, 0.61)"}},"overlayColor":{"default":{"color":"CT_CSS_SKIP_RULE"}},"backgroundColor":{"default":{"color":"#ffffff"}}},"mobile":{"background_type":"pattern","background_pattern":"type-8","background_image":{"attachment_id":null,"x":0,"y":0},"gradient":"linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%)","background_repeat":"repeat","background_size":"auto","background_attachment":"scroll","patternColor":{"default":{"color":"rgba(230, 232, 235, 0.61)"}},"overlayColor":{"default":{"color":"CT_CSS_SKIP_RULE"}},"backgroundColor":{"default":{"color":"#ffffff"}}}},"styles_descriptor":{"styles":{"desktop":"[data-prefix=\"single_page\"] {background-color:#ffffff;background-image:url(\"data:image\/svg+xml,%3Csvg width='6' height='6' viewBox='0 0 6 6' xmlns='http:\/\/www.w3.org\/2000\/svg'%3E%3Cg fill='%23e6e8eb' fill-opacity='0.61' fill-rule='evenodd'%3E%3Cpath d='M5 0h1L0 6V5zM6 5v1H5z'\/%3E%3C\/g%3E%3C\/svg%3E\");}","tablet":"","mobile":""},"google_fonts":[],"version":6}},"_links":{"self":[{"href":"https:\/\/easyrevitapi.com\/index.php\/wp-json\/wp\/v2\/pages\/2715","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/easyrevitapi.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/easyrevitapi.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/easyrevitapi.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/easyrevitapi.com\/index.php\/wp-json\/wp\/v2\/comments?post=2715"}],"version-history":[{"count":201,"href":"https:\/\/easyrevitapi.com\/index.php\/wp-json\/wp\/v2\/pages\/2715\/revisions"}],"predecessor-version":[{"id":2970,"href":"https:\/\/easyrevitapi.com\/index.php\/wp-json\/wp\/v2\/pages\/2715\/revisions\/2970"}],"wp:attachment":[{"href":"https:\/\/easyrevitapi.com\/index.php\/wp-json\/wp\/v2\/media?parent=2715"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}