Belle-Ve Bricks

Your Imagination

Step

LEGO Modular Designing & Building Guide

Create Your

We help you from start to finish to create and deliver your tailor-made custom model.
Custom model
Continue

Hello LEGO® fans! In this article, we will be discussing the art of modular designing and building with LEGO. Our team of expert LEGO® designers has years of experience creating custom MOCs, and we understand the importance of incorporating modular design into our building process.

The modular design not only adds a level of intricacy and detail to your builds, but it also allows for easy transport and rearrangement in the display. So without further ado, let’s dive into the basics of modular designing and building with LEGO.

Key Takeaway

KEY TAKEAWAYS

  1. Always plan your modular building before constructing it.
  2. Place stairs near a wall to maximize space.
  3. Use contrasting or complementary color palettes for different floors.
  4. Add details like carpets, printed tiles, tables, chairs, lamps, and cabinets to give more life to the MOCs.
  5. Utilize techniques such as greebles to create an interesting façade
  6. Check both the ground and middle floors of the building while ensuring a cohesive look
  7. Finally, tile the top brick walls and add jumper plates or modified plate connections for the top floor.

What is LEGO Modular Designing or Building

Lego modular building is a fun and creative hobby involving constructing buildings and structures with LEGO blocks. Using specialized parts to construct the base of the structure, then adding detailed elements such as windows, doors, roofs, and minifigures helps bring a scene to life.

With an ever-growing library of official sets from Lego or custom creations from fans, the possibilities are endless. Lego modular building allows its creators to become architects, engineers, and designers while also providing a unique opportunity for storytelling and problem-solving.

Whether you’re constructing your own city or recreating a famous landmark, Lego modular building is an exciting way to explore your creativity.

Things to look out for when Building a LEGO Modular MOC

  1. Make sure to plan out the construction of your MOC in advance and consider which pieces you need for it
    – Ensure all pieces will fit together properly and are placed in the right way
    – Consider weight balance when adding extra details, some pieces may cause the structure to become top-heavy and collapse
    – Use specialized parts such as beams, plates, and curved bricks to create a solid foundation for the building
  2. Experiment with different angles and sizes when constructing various elements of your LEGO build – this can help give it visual interest
  3. Pay attention to detail – add windows, doors, balconies, or even landscaping elements like trees or water features to bring your creation to life
  4. Have fun! Lego modular building is a great way to explore creativity and problem-solving skills while making something unique.
  5. Take your time – rushing the building process can lead to mistakes, so take your time and enjoy the process.
  6. Finally, don’t forget to share your creation with other fans – modular builds are always best shared! 🙂

Tips to Help You Become a Better LEGO® Modular Designer

1. How to Build a LEGO Ground Floor

Starting off with a base plate, place the four pieces of 1×2 technic bricks that will end up connecting the MOC to adjacent buildings. The bricks are to be placed on the 10th and 11th stud from the edge of the base plate. This might be a simple step but seeing these bricks in fixed positions on a baseplate may ease your mind that you have started something and may relieve your anxiety over the tasks ahead.

Place two pieces of 1×8 light bluish-grey tiles on the edge of the base plate which will act as the front part of the building. Continue by adding 5-7 studs (in depth) of dark bluish-grey tiles depending on how deep you want the building to be from the street.

This depth may change as you develop the layout of the building but placing them will give you an idea of where to start the main structure of your building. Jumper plates may also be used which will help fix positions where you can place minifigs, but this can also be done at a later stage when you are finalizing the design.

Lay out the foundation of the building by placing bricks on the perimeter. As a basic structure, a 16×16 footprint would be ideal but you may increase or decrease the size depending on your overall design. While laying out the bricks, it is also advisable to plan for the position of the main door and back door (if applicable). The main door may be placed on the center or the side of a building.

The back door is preferable to be placed on one side so as not to obstruct the interior layout. If you imagine opening the door on one side near the wall, it would not eat up so much space.

As a framework, start placing bricks and panels around the perimeter, mainly the back, and side walls. Depending on your style and resources, you may opt to use 1x2x5 bricks, and/or 1x5x6 panels can easily raise your building and require fewer pieces or you may use normal bricks and add two-tone walls for greater aesthetic effects.

As a guide on an average modular building height, the usual pattern for the number of brick height is 10-7-7 or 11-6-6 sometimes the ground floor is lower (i.e., 9 bricks high) but the overall idea is that the ground floor is 2-4 bricks higher than the upper levels.

Tip: if you don’t have enough bricks for a certain color, use 2-tone-colored walls. Split them with a plate or another colored brick. See La Locanda MOC image for an idea.

Place the stairs next to a wall. Unless the stairs are the centerpiece of the building, placing them next to the side or back wall will allow you to fully maximize the space of the building.

Considering you already have an idea of the interior; you may start the layout process. As an example, the La Locanda MOC has two separate businesses – a scooter rental shop and an Italian restaurant.

Once a general layout has been made, you may work on the façade of the building. This is where you use different techniques like SNOT, SNIR, lettering, etc. to enhance the aesthetics of the building. A separate post on building a MOC with some of the techniques can be viewed at the link.

You may go back and forth between the interior and the façade. This would also be a good time to utilize the wall by using modified bricks with studs on the side. You may place cabinets, printed tiles, etc. to make sure that a wall is not left blank and dull. The idea is to fill the room with details but finds a balance so as not to make it look cluttered and too messy.

After finalizing the details of the façade, the walls, and the interior, start placing tiles on whatever is left on the floor. You may use a certain pattern but ensure that you have enough pieces for it to work. Also, ensure that the color scheme is aligned with the interior as well as not look too busy with certain tile patterns. For larger areas, it may also help break them down into sections by using tiles on certain areas.

After floor tiling is done. You may complete the ground floor by tiling the top brick walls and adding a few jumper plates or modified plates for connecting to the upper levels. Keep working and tweaking the design until you are happy with the result.

After designing/building the modular ground floor, it’s now time to move to the middle floor. Due to the differences in terminologies (i.e. first floor / second floor) depending on your location, I’ve decided to use “middle floor” on any floor between the ground floor and the top floor. Let’s begin!

2. LEGO MOC Modular – How To Build a Middle Floor

First, prepare the floor plates considering the footprint of the ground floor as well as the opening for the stairs, in case the stairs are inside the building. Use large pieces of plates as much as possible to reduce the required support connections under the floor plate. For the opening for the stairs, it is recommended to have an average of 4×6 studs of opening. In a smaller building, 4×4 is also acceptable.

Reinforce the perimeter of the floor plate with 1 or 2-wide plates as you see fit. In cases of overhanging floors, balconies, etc. it may also be advisable to use a 4-wide plate to continue the support from the perimeter wall of the ground floor up to the edge of the overhanging middle floor plate. For large unsupported areas, you may also place 2×2 plates or 2×2 boat studs (item no. 2654)

3. LEGO MOC Modular – How To Build a Crown Jewel Floor Plate

In the same manner as the ground floor, place bricks and panels around the perimeter, mainly the back, and side walls. The middle floor is usually 6-7 bricks high. Using the pattern height of 10-7-7 or 11-6- as mentioned in part 1, the overall height of the building would be on par with other modular buildings.

In case the stairs are inside the building you may optimize space by placing the stairs leading to the top floor next to a wall. Also position the doors where they would be of least obstruction to the layout of the furniture, preferably in a corner with the door opening outward. Where possible, also place some windows on the side or back wall. This will add more details to an otherwise plain wall.

4. LEGO MOC Modular – How To Build a Crown Jewel

4a. Alternate Design of The Modular Police Station

At this stage, you may opt to choose a different color palette that would contrast or complement the ground floor. Most commercial modular buildings tend to have the ground floor as a different color compared to the upper floors for additional aesthetics and diverse color palettes. For residential buildings, the ground floor and middle floor tend to have the same color palette.

4b. Tailor’s Corner with a white ground floor and a dark tan middle floor

5. Seamstress’ Shop

5a. Ground Floor and Middle Floor With The Same Color Palette

After the placement of walls, stairs, doors, and side/back windows, you may start with the interior design. Depending on the function of a room, you may place carpets, printed tiles on the walls (i.e., paintings), tables, chairs, lamps, and any other furniture that serves the purpose of the room. You may also place dividing walls or cabinets to split a big room into sections. Make use of modified bricks with studs on the side to place cabinets on the wall and reduce those blank spaces.

As shown below, a big open space (MOC High Street Boutique) is split into 2 areas with a bar and a men’s wear. The stairs are on the corner to avoid becoming an obstruction to the whole layout.

6. High Street Boutique

The façade of the middle floor can be similar to the ground floor or it can be different but complementary. You can use windows, arches, greebles, etc. to create a good façade as well as apply the different techniques shown in part 1 of the blog. You can go for a symmetrical façade like the Town Square Pub or an asymmetrical façade like Jim’s Bowling Alley & Diner

Note: Greeble means a small piece of detailing added to break up the surface of an object and add visual interest

7. Town Square Pub – Alternate Build of Assembly Square

8. Jim’ Bowling Alley & Diner – Modification of the Down Town Diner

You can check the number of details such as greebles used to ensure that it is not overdone and it is aligned with the style you are going for. If needed, you may also check the ground floor and adjust the façade of either the ground or middle floor to ensure a cohesive look for the building.

LEGO MOC Harry Potter Modular Moments

After completing the façade and interior, you can tile the top brick walls and add a few jumper plates or modified plates to connect to the top floor.

I hope that these tips help you with your own modular building. I will continue with the top floor and roof of the building in my next post. In the meantime, you may check out my MOCs.

Conclusion

In conclusion, by following these tips and techniques, you can create amazing modular LEGO MOCs that are detailed, interesting, and unique. Don’t forget to have fun while building your MOCs! Good luck and happy building!

<div class="badge-base LI-profile-badge" data-locale="en_US" data-size="large" data-theme="dark" data-type="HORIZONTAL" data-vanity="ferdi-vol" data-version="v1"><a class="badge-base__link LI-simple-link" href="https://www.linkedin.com/in/%E2%9C%85-ferdi-vol-corporate-gifts/?trk=profile-badge"></a></div>
/* Auto generated, hash = 5dceu9kevqjdyuy2uw1atqrsu */
//TODO: Break this file down so that we can actually unit test it.
(function(window) {
  /**
  * Renders all unrendred LinkedIn Badges on the page
  */
  window.LIRenderAll = function () {
    var CALLBACK_NAME     = 'LIBadgeCallback', //Must match callback on helpers.js
        BADGE_NAMES       = '.LI-profile-badge, .LI-entity-badge',
        // TODO -- tracking param for other badge types
        TRACKING_PARAM    = 'profile-badge',
        responsesReceived = 0, //Keeps track of number of responses recieved for proper cleanup when finished
        expectedResponses = 0, //Keeps track of number of responses to expect
        scripts           = [ ], //Keeps track of scripts added for proper cleanup when finished
        childScripts      = {}, //Keeps track of child scripts to render
        badges            = Array.prototype.slice.call(document.querySelectorAll(BADGE_NAMES));

    var i, len, badge, rendered;
    for (i = 0, len = badges.length;  i < len; i++) {
      badge    = badges[i];
      rendered =  badge.getAttribute('data-rendered');
      if (!rendered) {
        expectedResponses++;
        badge.setAttribute('data-rendered', true);
        renderBadge(badge);
      }
    }

    function isCNDomain() {
      if (typeof window !== "undefined") {
        var hostName = window.location && window.location.hostname ||  '';
        return (/linkedin(-ei)?.cn$/).test(hostName);
      }

      return false;
    }

    function generateUrl(isEI) {
      var domainPrefix = isEI ? 'https://badges.linkedin-ei' : 'https://badges.linkedin';
      if (isCNDomain()) {
        return domainPrefix + ".cn/";
      }

      return domainPrefix + ".com/";
    }

    function getBadgeKeyQueryParams(badge) {
      return Array.prototype.slice.call(badge.attributes).filter(function (attr) {
        return attr.name.lastIndexOf('data-key-', 0) !== -1;
      }).map(function (attr) {
        // Most browsers automatically lowercase the attribute name when its being read
        // We are calling lowercase on it again to ensure consistency for any browsers that are lagging behind.
        return encodeURIComponent(attr.name.replace('data-', '').toLowerCase()) + '=' + encodeURIComponent(attr.value);
      });
    }

    /*
    * Renders a single badge on the page
    * @param badge: div element of badge to render
    */
    function renderBadge(badge) {
      var size       = badge.getAttribute('data-size'),
          locale     = badge.getAttribute('data-locale'),
          type       = badge.getAttribute('data-type'),
          theme      = badge.getAttribute('data-theme'),
          vanity     = badge.getAttribute('data-vanity'),
          version    = badge.getAttribute('data-version'),
          isEI       = badge.hasAttribute('data-ei'),
          entity     = badge.getAttribute('data-entity'),
          isCreatePage = badge.hasAttribute('data-iscreate'),
          uid        = Math.round(1000000 * Math.random()),
          baseUrl = generateUrl(isEI),
          queryParams = [
            'locale=' + encodeURIComponent(locale),
            'badgetype=' + encodeURIComponent(type),
            'badgetheme=' + encodeURIComponent(theme),
            'uid=' + encodeURIComponent(uid),
            'version=' + encodeURIComponent(version)
          ],
          url;

      if (version === 'v2') {
        baseUrl += 'view';
        queryParams.push('badgesize=' + encodeURIComponent(size));
        queryParams.push('entity=' + encodeURIComponent(entity));
        queryParams = queryParams.concat(getBadgeKeyQueryParams(badge));
      } else {
        baseUrl += 'profile';
        queryParams.push('maxsize=' + encodeURIComponent(size));
        queryParams.push('trk=' + encodeURIComponent(TRACKING_PARAM));
        queryParams.push('vanityname=' + encodeURIComponent(vanity));
      }

      if (isCreatePage) {
        queryParams.push('fromCreate=true');
      }

      url = baseUrl + '?' + queryParams.join('&');
      badge.setAttribute('data-uid' , uid);
      jsonp(url); //Calls responseHandler when done
    }

    /**
    * Handles a response from the server. Finds badge matching badgeUid and inserts badgeHtml there
    * @param badgeHtml: String representing contents of the badge
    * @param badgeUid: UID of the badge to target
    **/
    function responseHandler(badgeHtml, badgeUid) {
      responsesReceived ++;

      var i, badge, uid, isCreate;
      var defaultWidth = 330 // max possible width
      var defaultHeight = 300 // max possible height

      for (i = 0, len = badges.length; i < len; i++) {
        badge = badges[i];
        // isCreate needed to prevent reloading artdeco script tag
        isCreate = badge.getAttribute('data-iscreate');
        uid   = parseInt(badge.getAttribute('data-uid'), 10);
        if (uid === badgeUid) {
          var badgeMarkup = `<body>${badgeHtml}</body>`
          var iframe = document.createElement('iframe');
          iframe.onload = function() {
            var iframeBody = iframe.contentWindow.document.body;
            // 5 px buffer to avoid the badge border being cut off.
            iframe.setAttribute('height', (iframeBody.scrollHeight || defaultHeight) + 5);
            iframe.setAttribute('width', (iframeBody.scrollWidth || defaultWidth) + 5);
          };
          iframe.setAttribute('frameBorder', '0');
          iframe.style.display = 'block';
          badge.appendChild(iframe);
          iframe.contentWindow.document.open();
          iframe.contentWindow.document.write(badgeMarkup);
          iframe.contentWindow.document.close();
          replaceScriptTags(badge, isCreate);
        }
      }
      tryClean();
    }

  // These functions are needed because badge markup is added via innerHtml property which does not run script tags
  function replaceScriptTags(node, isCreate) {
    if (shouldReplaceNode(node, isCreate)) {
      node.parentNode.replaceChild(cloneScriptNode(node), node);
      childScripts[node.src] = true;
    } else {
      var i = 0,
          children = node.childNodes;
      while (i < children.length) {
        replaceScriptTags(children[i++], isCreate);
      }
    }
    return node;
  }

  function shouldReplaceNode(node, isCreate) {
    return isScriptNode(node) && !childScripts[node.src] && (!isCreate || (isCreate && !node.getAttribute('data-isartdeco')));
  }

  function isScriptNode(node) {
    return node.tagName === 'SCRIPT';
  }

  function cloneScriptNode(node){
    var script  = document.createElement("script");
    for( var i = node.attributes.length-1; i >= 0; i-- ) {
      script.setAttribute( node.attributes[i].name, node.attributes[i].value );
    }
    return script;
  }

    // Gets all incoming responses
    window[CALLBACK_NAME] = responseHandler;

    /**
    * Tries to clean added tags
    **/
    function tryClean() {
      //Clean up after all requests are done..
      //Accounts for people including script more than once
      var done = (responsesReceived >= expectedResponses && expectedResponses > 0) || responsesReceived >= badges.length;
      if (done) {
        delete window[CALLBACK_NAME];

        // remove all script tags
        scripts.map(function(script){
          document.body.removeChild(script);
        });

      }
    }

    /*
    * Makes Jsonp request, responses handles by CALLBACK_NAME
    * @param url String: url of server to make request to
    */
    function jsonp(url) {
      var script = document.createElement('script');
      script.src = url;
      scripts.push(script);
      document.body.appendChild(script);
    }
  };

  if (document.readyState === 'complete') {
    window.LIRenderAll();
  } else {
    window.addEventListener('load', window.LIRenderAll, false);
  }

})(window);
Popular Posts