Create Marketing Plans

Create marketing plans

6 min read

Marketing plans, sometimes known as sales plans, are designed to assist buyers when buying off-the-plan. The creation of these plans is often a tedious task,  involving significant repetition and the possibility of human error. This tutorial describes how the process of creating marketing plans can be automated using Dynamo.


When designing an apartment complex, a developer will often ask the architect to produce a series of marketing plans. These views are for a separate sheet set and show a single apartment per sheet, usually at 1:50@A3. The purpose of the marketing plans is two-fold. Firstly, they are displayed in the project showroom to assist buyers when buying off-the-plan. Once sold, a small sticker is then placed on the sheet to indicate that it is no longer available (and no doubt to encourage fear-of-missing-out syndrome to other prospective buyers). Secondly, the drawing will form part of the sales contract if the building isn’t completed as proposed.

Folia Apartments by Mirvac
Marketing plan example, Folia Apartments by Mirvac

The workflow

Depending on the size of the apartment complex, the process of creating marketing plans can take weeks. The process usually involves the following steps:

  1. Duplicating the GA floor plan
  2. Renaming the view
  3. Assigning a presentation view template
  4. Crop the view to the bounding box of the apartment, inclusive of any external balconies or terraces
  5. Masking any unnecessary information, such as adjacent apartments
  6. Rotating the view so that the entry door is at the bottom of the sheet. (Apparently, this is more legible as buyers have mental difficulty rotating a view displayed at True North or Project North.)
  7. Creating a new sheet
  8. Placing the view on the sheet
  9. Updating the various title block instance parameters for the key plan, north point rotation, and the internal and external area.

This process is then repeated for every apartment! Some efficiencies may be possible if floorplates are repeated, but in my experience, the client will still want individual sheets to avoid doubt.

The problem

In addition to the sheer amount of time required to undertake the process, there is also a high risk of manual errors. Revit is very particular about how views can be rotated. Moreover, Revit doesn’t easily display what the new rotation value is. A user, therefore, has to calculate what the north point rotation needs to be manually. 

Secondly, a user needs to ensure that the key plan is set correctly on every sheet. With views being rotated independently and apartments looking very similar, it can be easy to indicate the wrong apartment on the key plan accidentally. This error can become problematic if not picked up before the sales contract is made.

Creating marketing plans with Dynamo

Parametric Monkey has developed two Dynamo Player graphs, available as part of our Dynamo Package Development service, to help solve this problem. The first graph, Create Marketing Plans, creates individual floor plans for each apartment, renames the view, assigns a view template, crops the view, and rotates the view (steps 1-4 & 6). The second graph, Marketing Plans on Sheet, creates the sheet, places the view on the sheet, and updates the various title block properties (steps 7-9). 

Create Marketing Plan
Dynamo Player

Before running the graph, ensure that all balconies/terraces have rooms and that the ‘Renumber Balconies‘ graph has been run. This process will provide the correct pairing of the apartments to their external area. To run the graph:

  • Define the ‘Apartment Number’ parameter. This value will be used for the view naming, e.g., “101”. If no parameter of that name exists of category ‘Rooms’, an error will be returned.
  • Define the ‘Apartment Room Name Contains’ value, e.g., “BED” or “APARTMENT”. Room names that contain this value will be for the view generation process.
  • Define the prefix to be assigned to the new view names, e.g., “SP” for sales plans.
  • Set the view template to be assigned to the view.
  • Define the entry door family type for the entry door. Up to two family types are supported.
  • Define the offset to be applied to the bounding box of the view’s crop region. 
  • Press Play to run the graph.
Dynamo Time Warning

A dialogue box will be displayed confirming the number of views to be created, along with a time estimate. The user can abort the graph by pressing ‘No’, which is useful if the graph will take a long time and you prefer to run it over lunch or after work hours.

Computational logic

The graph collects all placed rooms in the project and filters them by name so that only the apartments remain. Balconies and terraces are ordered and paired with their associated apartment by matching the apartment number parameter with a “.B” suffix (refer Renumber Balconies graph).

Floor plan views are then created for each apartment with a view template assigned. If the view name already exists, it is excluded from the process and returned separately. Views are named “Prefix_Apartment Number”, e.g. “SP_101”. A simple rectangular bounding box of the apartment/balcony pairing is then used with the defined offset to crop the views.

The entry door of each apartment is determined based on the family types supplied. Views are then rotated based on the entry door’s host wall orientation so that the interior face is pointing up the page. This rotation value is rounded to two decimal points in case the elements are not entirely orthogonal.

Views that were successfully rotated are returned separately. Views which couldn’t be rotated, as no entry door could be found, are cropped and returned separately.


Currently, the graph does not mask any elements once the floor plan has been created (step 5). While architects may model apartments as a model group allowing for neighbouring apartments to be filtered out, marketing plans are required to show party walls plus external areas. These elements are generally modelled separately from the apartment model group. The difficulty, therefore, arises in determining which elements need to remain visible and which elements can be hidden. Identifying the room’s bounding walls is possible. However, the complexity arises with how Revit deals with wall joints.

Walls in Revit have an interior and an exterior face. This quirk means that for a party wall separating two apartments, one apartment will share the ‘interior’ face. In contrast, the other apartment will share the ‘exterior’ face, even though both wall faces are technically internal. Therefore, we would need to extract both faces of the party wall to determine which was the outermost, as we want to see the wall thickness in our plans. This workflow is achievable.

But then we have other wall elements intersecting the party wall, such as service risers. Depending on the wall assembly’s layer build-up, wall joins can become complex and even produce inaccuracies in the room boundary. We may also have columns that overlap the party walls.

Calculating the external perimeter of an apartment, including its external area, can therefore become very complicated. Depending on the design and the modelled methodology used, it may be possible to define the masked region and/or hide elements accurately. However, it can become messy and is best only included if conditions allow.


Creating marketing plans for each apartment can be a tedious and error-prone task. However, Dynamo affords us the possibility to both significantly reduce the time needed to complete the job, and minimise the chance of errors. To find out more about our Dynamo Package Development service, drop us a line and discover how we can automate your Revit workflows.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Add Revision to sheets

Add revisions to multiple sheets

A simple Dynamo workflow for adding or removing a revision to multiple sheets simultaneously in Revit 2022 or lower.

Create Internal Elevations with Dynamo

Create internal elevations

Generate elevation markers and corresponding internal elevation views using Dynamo based on rooms and their bounding wall’s orientation.

Sync Room Parameters

Sync room parameters

A Dynamo workflow to synchronise instance-based room parameters, such as apartment number, nested within a Revit model group.

Rhino Inside Revit for Dynamo users

Rhino.Inside Revit for Dynamo users

Learn some of the key differences between Dynamo and Rhino.Inside Revit and discover the benefits of migrating certain Dynamo workflows to Rhino.Inside Revit.


© 2023 Parametric Monkey
Parametric Monkey and the Parametric Monkey logo are trademarks of Parametric Monkey Pty Ltd.


Drop us a message and someone from our team will be in touch with you shortly.


Thank you for your interest. Someone from our team will be in touch soon.


To find out about upcoming public workshops or to organise a private workshop, please submit the following contact form and we’ll be in touch soon.