If you like your classical architecture and proportions, you will be familiar with the concept of the golden mean. Also known as the golden ratio or golden section, it has fascinated architects and artists for centuries. The golden rectangle is thought to have the most pleasing proportions of any rectangle.
When spatial planning, it may be useful to first start with a room’s ‘ideal’ proportions, before adjusting it to suit the various project’s requirements. One example of how this could be used is in healthcare where the schedule of accommodation is critical.
In this workflow, an architectural column family is created which represents a ‘real’ Revit room. It contains various instance parameters including the width and length. This allows users to easily flex the family without the fear of the room ‘breaking’ due to a missing wall. Hence, it is a quick and dirty spatial planning tool before we proceed to substituting these families for real Revit rooms and walls. The family also contains the briefed area and actual area for instant visual feedback.
Since we know what the area should be and the equation for the golden rectangle, we can calculate with simple algebra the width and length. To automate this process, I have created the ‘GoldenMean’ node as part of the BVN Dynamo package.
Note that the area input, and the width/length output, will be of the same unit. Therefore, if you are modelling in millimetres but your area schedule is in metres, you’ll need to use the ‘Convert Between Units’ node.
When developing a project document list, the most convenient way is to create the information within Excel. The formulas and formatting in Excel allow for a lot of mundane document management tasks to be expedited. The next step is to get the document list into Revit and generate sheets from that list.
For a simple document spreadsheet containing sheet number and name information, we can use a simple Dynamo script as follows.
The title bock family and file path of the sheet list needs to be assigned as the inputs for the script which then get sorted and any redundant spreadsheet data removed before the sheets are created. There are 2 possibilities for sheet creation within Dynamo:
- ‘Sheet.ByNameNumberTitleBlockAndView’ – This is a standard Dynamo node that requires, Sheet Names, Sheet Numbers, Title block Family Type, and View inputs. If the project is in very early stages the views for the sheets are generally not created, so they cannot be used as an input without generating an error.
- ‘Tool.CreateEmptySheet’ – This is a node from the SteamNodes package that requires, Titleblock Family Type, Sheet Numbers, Sheet Names and the refresh inputs. The good thing about this node is that you don’t need to have the views in your model already created for it to work, as it will create empty sheets.
For a more complicated spreadsheet, we may have multiple worksheets and additional parameter information. For example, BVN utilises an organisation method for assigning different trade packages in a document set via the ‘BVN Alphabet’ parameter. This allows us to group and easily identify views and sheets in the Project Browser and group trade package documentation together. In the example below, the Excel document spreadsheet is identifying Sheet Number, Sheet Name, BVN Alphabet series, Sheet Issue Date, Design Stage, as well as having multiple worksheets corresponding to the different BVN Alphabet series.
Although these additional fields allow for greater functionality in Excel they add complexity in how Dynamo extracts the data. The enhancements to this script allows for the additional sheet tabs in excel to be read.
When converting a non-workshared model into a workshared model, all elements apart from grids, levels and reference planes will be automatically assigned to the default workset ‘Workset1’ (unless of course you renamed it something different). This is not very useful and depending on how far progressed the model is, it can take significant time manually assigning elements to the respective workset. Historically, BIM managers have utilised the Ideate Explorer add-in as a way to speed up the process.
To assign elements to a particular worksets, it was necessary to sort by ‘category’, and then possibly use the Ideate Query function to further refine the selection process before modifying the selected elements Workset parameter in the Properties Pallet.
Once assigned to a workset, it is possible to sort by ‘workset’ and then find any offending elements and change their workset parameter in the Properties Pallet.
This can be a very time consuming process, especially if you need to repeat multiple times. However, we can use Dynamo to automate this process.
As the worksets created are to an office standard they can be pre-programed into the Dynamo script for element assignment. The ‘Element.AssignToWorkset’ node utilises the BVN workset naming convention to automatically assign model elements:
- Non-structural walls, floors and roof whose type’s ‘Function’ parameter is ‘External’.
- Windows and doors whose type’s ‘Function’ parameter is ‘External’.
- Walls, roofs, floors who has the ‘Structural’ instance parameter checked.
- Structural columns.
- Note that this process takes precedence over the façade workset. Therefore, if a wall is both external and structural, it will be placed on the ’10_STRUCTURE’ workset.
- 20_VERTICAL CIRCULATION:
- Ramps and Stairs.
- Non-structural walls, floors, roof, windows and doors whose type’s ‘Function’ parameter is ‘Internal’.
- Furniture, Furniture systems and speciality equipment.
- Topography, planting, entourage and parking.
- 99_LEVELS & GRIDS:
- Levels, grids, reference planes, reference lines, and scope boxes.
Again this node is highly specific to one particular workflow but it can be easily modified to suit your specific needs.
This tutorial will present how to create and rename the default worksets using Dynamo. Note that before you create worksets you will need to enable worksharing. To do this in Revit 2016 or earlier, it was possible to click on the ‘Worksets’ button in the bottom ribbon or alternatively, go to Collaborate > Manage Collaboration > Worksets.
However, for whatever reason, in Revit 2017 it is no longer possible to activate worksharing via the Workset button. It is only possible via the Collaborate > Manage Collaboration > Worksets.
If you are using Revit 2017, you will be asked how you want to collaborate: Collaborate within your network; or, Collaborate using the cloud
Once worksharing has been enabled, Revit will create default worksets and assigns elements and settings to these worksets. The default worksets are as follows:
- ‘Shared Levels and Grids’ – Contains all existing levels, grids and reference planes. Note that if you choose to collaborate using the cloud via BIM360, the workset will be named ‘Shared Views, Levels and Grids’.
- ‘Workset1’ – Contains all existing model elements in the project. Once created, this workset can be renamed but it cannot be deleted.
Worksharing window using Collaborate within your network
Worksharing window using Collaborate using the cloud
If you have an office naming standard for worksets, we can automate the creation of them. For example:
- 20_VERTICAL CIRCULATION
- 99_LEVELS & GRIDS
The Dynamo script utilises the BVN Package node ‘Workset.CreateAndRenameDefault’ to add the new worksets and rename the existing default worksets.
At BVN we have decided to do something a little tricky with the default worksets. Since ‘Workset1′ cannot be deleted, we figured it was best to rename this workset to something which we would always have in every project. That is, it would never be deleted. We concluded that the most logical workset was actually ’99_LEVELS & GRIDS’. Therefore, as shown in the screenshot, the ‘Shared levels and grids’ is renamed to ’60_MASSING’ (or whatever will be your most dominate workset) and ‘Workset1′ is renamed to ’99_LEVELS & GRIDS’. If you don’t want to follow this protocol, simply reverse the inputs. Once the script has run you should see something like this in the workset window.
When starting Parametric Monkey, my aim was to accelerate computational literacy within architectural design. The genesis of this idea was simple. Over the course of my architectural career, I continued to come across technical issues when working with digital design tools. Parametric Monkey was created as a platform so that I could share this knowledge with others. I had no idea the impact it would have.
I am humbled and proud to announced that Parametric Money has now passed 100,000 views and 40,000 visitors from over 100 different countries. This is a major milestone for us and I would like to thank everyone involved for making it such a success.
As evidenced by the three most popular posts, Parametric Monkey focuses on the intersection of parametric design and BIM:
- Construction Communication – The outcomes of a BIM course I ran at Hong Kong University (HKU) where students were asked to encrypt and codify what are otherwise complex architectural effects into clear methods of construction.
- Rhino to Revit workflow – This is a list of best practice workflows to follow when generating Rhino massing for importation into Revit.
- Dynamo for GH users – A *PDF primer which contains tips and translations to help migrate your Grasshopper skills to Dynamo.
The most commented tutorial was Renumber Doors by Rooms which demonstrates how to automate the renumbering of Revit doors based on the room in which it is located using Dynamo. With now over 80 tutorials covering Revit, Rhino and numerous plug-ins, 2017 promises to be even bigger and better for Parametric Money.
Splines can be created using either the Model lines (Architecture > Model > Model lines) or Detail lines (Annotate > Detail > Detail Lines) command. For a long time, splines in Revit have been a major bugbear. The reason for this is that it is currently not possible to make a closed, periodic spline nor is it possible to trim the spline once created.
Furthermore, it is (still) not possible to snap to the start/end point so that the points are coincident. Note that if you try to move the start/end point directly, it will scale and modify the entire spline. To move only the start/end point, you need to use Tab to select it.
All of these limitations makes working with splines very difficult. In fact, there is actually not much you can do with splines within Revit. However, here are your options if you do want to work with splines:
Option 1: Native Revit splines
Since you cannot create a single closed spline within Revit you can either:
- Create a second spline or line and snap to the start and end point to fully close the spline. In this scenario, you’ll need to eye-in the tangency.
- Model an in-place mass which only has 2D line work in it. This method will allow you to snap to the end point although technically it is not ‘closed’. Again you’ll need to eye-in the tangency. You will also receive an error stating that there are two overlapping points. This can be ignored since if you try to delete the duplicate reference point it will delete the last segment.
- Create an adaptive component family, which is similar to the in-place mass method described above.
Option 2: Imported AutoCAD/Rhino linework
The workaround for this limitations is to use AutoCAD or Rhino. Create or modify the spline in AutoCAD or Rhino, and then re-import the geometry back into Revit. When importing, you’ll need to use ‘Import CAD’, not ‘Link CAD’. Once in Revit, you can then explode the Imported CAD spline. Revit will convert it into a Revit spline and split it into two parts. If a 3D spline is imported, it will be flattened to the current work plane once exploded within Revit. The method of course breaks the golden rule of not importing CAD geometry and especially not exploding CAD geometry. The CAD geometry therefore needs to be as ‘clean’ as possible and used sparingly.
Option 3: Dynamo
Using Dynamo to generate splines is probably the best workaround. Dynamo will allow you to create a closed, periodic NURBS curve, similar to what Rhino or AutoCAD can produce. (Although refer to this post to see some of the geometric differences when importing). In order to create Revit geometry, such as model lines or a floor, the closed spline will need to be split into two segments. Although we are left with two lines, they will be tangential unless modified manually. The final output of this workflow is similar to option 2 where we imported CAD linework however the benefit Dynamo has over this method is that you won’t need to keep deleting and reimporting the geometry. Re-running the Dynamo script will automatically update the Revit elements should the spline geometry change.
Join me at this year’s BILT ANZ conference (previously RTC Australasia) where I will be presenting three classes:
‘Flux-ilicious: Open-data and cloud computing‘ – This class will identify some of the interoperability limitations we currently face and introduce Flux as a contender to solve these issues. We will cover how to setup a project and share data across Revit, Excel and Rhino and we’ll also delve into the Flux labs as a means to harness the power of open-data and cloud computing.
‘In context: Working with GIS data sets’ – Working with Geographic Information Systems (GIS) and Airborne Laser Scanning (ALS) data can be confusing and difficult. This class will demystify the process of working with these data sets and demonstrate how such data sets can be optimised, cleaned and imported. Using the City of Sydney model as an example, attendees will learn how to:
- Convert a detailed LiDAR terrain mesh into a simplified surface using Grasshopper;
- Utilise Rhino to clean up building geometry for importation into Revit and 3D printing software; and
- Position geometry accurately based on various coordinate systems such as WGS84 and MGA94.
Furthermore, we’ll explore how to enhance the data set by utilising Open Street Map data imported from Elk and Flux’s Site Extractor.
‘Everyday Dynamo: Practical uses for BIM managers’ (Lab) – There are many day-to-day laborious tasks that an Architect needs to perform. Whether it is sequentially renumbering doors or rooms, cleaning up the Revit model, or a host of other tasks, this class will demonstrate how to automate these processes so that you can spend more time on what you do best, design. By harnessing the power of the Dynamo Package Manager, the class will illustrate how to extend Revit’s capabilities to maintain your Revit model. We’ll cover how to automate: workset creation, renumbering rooms, renumbering doors, purging unused filters, adjusting a room’s upper limit, controlling a view’s underlay, creating unplaced rooms, and adjusting titleblock properties to name but a few. The lab recently featured in BILT ANZ Program Highlights.
Registrations for BILT ANZ open soon and the conference will be held in Adelaide from 25-27 May 2017.
Within Revit, there are essentially two forms of detailing:
- ‘Hybrid’ detailing which is drawing additional information over the detail view, so the detail produced is a combination of 2D information and the 3D model behind; and
- ‘Complete over-Detailing’ which is where the 3D model is used to trace over in 2D; with the 3D model turned off on completion of the detail.
Although it is possible to model everything in the design, this should be avoided, as it will lead to large file sizes and model degradation. You need to be smart about what to model in 3D and what to detail in 2D. In general, it is recommended that you model to a point, then head to the details to document the rest. Here is a brief introduction into some of the tools at your disposal to achieve that.
You can add a callout to a plan, section, detail, or elevation view. In these views, the callout tag is linked to the callout view. The callout view shows an enlarged version of part of the parent view, and provides more information or details about that part of the building model. You can add a detail callout or a view callout to a plan, section, detail, or elevation view. When you draw the callout bubble in a view, Revit creates a callout view. You can then add details to the callout view to provide more information about that part of the building model. The view in which a callout is drawn is the parent of the callout view. If the parent view is deleted, the callout is also deleted. To create a callout go View > Create > Callout. You have the option of creating a simple rectangular callout or by sketching the boundary.
It is also possible to create a referenced callout. This can be used when you don’t want to reference the model directly, but rather to another detail, e.g. drafting views. To create a reference callout go View > Create > Callout and on the Options Bar, select Reference other view, and select a reference view name.
During the course of a project, you may want to create details in a view that are not directly associated with the model. You can create this un-associated, view-specific detail using a drafting view. In a drafting view, you create details at differing view scales (coarse, medium, or fine) and use 2D detailing tools: detail lines, detail regions, detail components, insulation, reference planes, dimensions, symbols, and text. Drafting views do not display any model elements. To create a Drafting View go View > Create > Drafting View.
Within Revit, the graphic representation of how elements appear can be controlled a number of ways. Before objects can be assigned a particular graphic representation, we first need to set the line graphics. This consists of three categories:
- Line Weights – Model line weights control the line width for elements like walls and windows in orthographic views (plans, elevations, etc). They depend on the view scale. There are 16 model line weights. Each can be given a size for each scale view. The sizes are loosely related to the nib sizes of technical pens used before the invention of CAD. A full set of pens would have the following nib sizes: 0.13, 0.18, 0.25, 0.35, 0.5, 0.7, 1.0, 1.5, and 2.0 mm, which correspond to the line widths as defined in ISO 128. However, the International Organization for Standardization (ISO) called for four pen widths and set a colour code for each: 0.25 (white), 0.35 (yellow), 0.5 (brown), 0.7 (blue); these nibs produced lines that related to various text character heights and the ISO paper sizes. To modify the line weights go Manage > Additional Settings > Line Weights.
Note that in order to preview line weights in a view you need to disable Thin Lines (TL) by going View > Graphics > Thin Lines.
- Line Patterns – Controls the line patterns such as dashed, centreline, etc. Regardless of if you have imported or linked AutoCAD drawings, then the default line pattern list will be contaminated. The best way to avoid this is to use a ‘CAD Links’ Revit model which is then linked into the main Revit model. To modify the line weights go Manage > Additional Settings > Line Patterns.
- Line Styles – Combines line weights and line patterns into a line style. To modify the line styles go Manage > Additional Settings > Line Style.
Once the line styles have been established/ modified, we can then assign these styles to elements. This can be done in a number of ways:
- Globally – This will affects all objects in a particular category. To modify an object’s style globally go Manage > Settings > Object Style.
- By view – This will manually override the global settings by changing how the all the object in one category appears in that view. This approach can be combined with filters to identify specific elements, such as Fire rated walls. To manually override a view go View > Graphics > Visibility/Graphics (VV or VG). Alternatively, select an object and right mouse click and choose Override graphics is View > By Category.
To add a filter to a view (optional):
– Visibility/Graphics > Filters > Add > Edit/New. Or View > Graphics > Filters.
– Add filter and give it a name, e.g. ‘Fire Rating’. Use ‘Define rules’ as the option.
– Assign the relevant categories, e.g. Walls.
– Under Filter by, select a parameter, e.g. ‘Fire Rating’.
– Once the filter is created, assign it to the view by going Visibility Graphics (VG) > Filters tabs > Add and select the filter. Then set the overrides as required.
- By element – This will modify only the selected element in that particular view. To override an element, select an element > right mouse click > Override graphics in View > By element.
Although the techniques above help you control the graphic representation of how elements appear, sometime it doesn’t do what you need it to do. Lines might be heavier or thinner than you require. This is where the Linework tool (LW) comes in handy; it allows you to modify existing lines in a view-specific context. To modify linework:
- Modify > View > Linework
- Choose the linestyle you want from the type selector
- Select the line or boundary of an element to change
You can also choose to remove lines using this tool. By selecting the <Invisible> line type, you can make some linework disappear. This is a good alternative to having to cover unwanted linework with a masking region (refer below).
Show hidden lines
Model and detail elements that are obscured by other elements can be displayed using the Show Hidden Lines tool. You can use the Show Hidden Lines tool on all elements that have the Hidden Lines subcategory. The Remove Hidden Lines tool is the inverse of the Show Hidden Lines tool. To show hidden lines go View > Graphics > Show Hidden.
Regions are areas of any shape or size that you can fill with a pattern. There are two types of regions within Revit: Masking regions and Filled regions.
- Masking regions are white boxes that can have (or not have) discernible borders to them. Masking regions are typically used to ‘hide’ or mask certain content from a view that you don’t want shown or printed. To create a masking region go Annotate > Detail > Region > Masking Region
- Filled regions allow you to choose from a variety of hatch patterns to fill the region. These are commonly used in details to show things like rigid insulation, concrete, plywood, and other material types. To create a filled region go Annotate > Detail > Region > Filled Region.
Beyond the ability to control opacity (transparent or opaque), two other variations of filled region types are available, Drafting regions (2D) and Model regions (3D):
– Drafting regions are a region type typically used for patterns. Some examples of a drafting region hatch might be diagonal lines in an area plan, or crosshatched lines to show the difference between two departments. Drafting regions are created by specifying a distance between two or more lines relative to the printed sheet.
– Model regions keep a consistent spacing relative to the model, not the view. You might use a model region to show ceiling tiles or brick courses, or tile pattern in a bathroom tile pattern. Model regions will keep their scale relative to the model.
Not all families need to be modelled from scratch. If the family you are after isn’t in the default Out-of-the-Box (OOTB)Revit library, try doing a quick search on line. Here is a list of useful websites:
Detail Components are schedulable, taggable, keynotable 2D families that allow an additional level of standardisation within your model. Some examples for things you’d use detail components are blocking in section, steel shapes, metal studs in plan or section—just about any replicated 2D element that comes in a standardized shape. You should use Detail Components wherever possible, rather than drafting lines. Detail components are more efficient and they are easier to copy and constrain. Remember to lock or check the box ‘moves with nearby objects’ when placing them to ensure they move if the model does. To create a Detail Component go New > Family > Metric Detail Item. Draw as required and save. In the project go Insert > Load from library > Load family. Once loaded, the family can be placed in views by going Annotate > Detail > Component > Detail Component.
The Repeating Detail Components tool allows you to place a detail component in a linear configuration where the detail component repeats on a set interval. This allows you to draw a ‘line’ that then becomes your repeating component. An example of this would be brick courses. To draw a Repeating Detail first create a detail component. Then load into project by going Insert > Load from library > Load family. Next we need to create a repeating component from the detail component. Go Annotate > Detail > Component > Repeating Detail Component. In the Properties window, Edit Type and Duplicate. Change the referring detail to the one just created and modify the spacing. Draw a simple line to array the repeating detail component.
The best way to think of the Insulation tool is like a pre-made repeating detail. Selecting this tool allows you to draw a line of batt insulation, much like a repeating detail. To draw insulation go Annotate > Detail > Insulation. The width and the bulge ration can be modified in the Properties pallet.
Revisions allow designers, builders and others involved in the project to track changes made to a set of drawings. This process is most important during the construction documentation phase. Since the construction documents usually consist of numerous sheets, this methodology allows everyone on the team to track and identify which changes were made and when they were made during construction. The purpose is not only to ensure correct construction but also to create as-built documentation recording how the building was actually created to be delivered to building owners upon occupancy. To create a revision go View > Sheet composition > Revisions. Numbering is generally ‘Per Sheet’ and you can then choose between ‘Numeric’ (1,2,3,etc) or ‘Alphanumeric’ (A,B,C,etc).
Once the revisions are created, they then need to be applied to the relevant sheet(s). To do this, go to a sheet and in the Properties window, under ‘revisions on sheet’ apply the revision just created. This will update the titleblock automatically.
To identify the part of the sheet that has changed, revision clouds are used. To create a revision cloud go Annotate > Detail > Revision Cloud. Note that for the clouds to be visible, ‘Cloud and Tag’ must be selected when creating the Revisions (View > Sheet Composition > Revisions).
If you plan to work as part of a team within Revit it is important to setup file sharing capabilities within your model. Revit behaves differently to other software and it isn’t always possible to do a simple, copy and paste from one file to another as you may be used to in other programs like Rhino or AutoCAD. Because Revit is a BIM authoring tool, elements can be hosted into other elements making simple amalgamation of files difficult.
The default, non-workshared Revit file can be used by one person as a time. This file can be copied and pasted like any other file you normally use. However in order to allow multiple to use the same model simultaneously, you’ll need to enable worksharing.
Worksets, which are part of the worksharing process, allow you to divide up portions of the model along logical building divisions. Don’t think of these as layers; think of them more as building assemblies and components. Whereas in 2D CAD you might have doors and walls as separate layers, in Revit you might have Facade, Core, and Interiors as separate worksets. Worksets act on many levels:
- On a large project worksets afford team members a way to manage what goes into the active RAM on their individual workstations. Each workset can be selected to load or not load when you open a project. Think of this as partially opening a project. Choosing to leave a workset off means that you won’t load that information into the active memory of the computer, making the model easier to manipulate and manage. It will be ‘lighter’ and more responsive. Views will open quicker. And when you need to see your work in context with the other worksets, simply turn on the worksets that weren’t previously loaded. This is a much more powerful way of controlling graphics than simply using Visibility Graphics.
- When working on a shared model, sometimes two people will try to edit the same element at the same time. If desired, worksets can be used to ‘own’ an element. This will prevent anyone from being able to edit that element. Generally, it is recommended that you don’t ‘own’ a worksets (or in Revit’s terminology, make it ‘editable’). Rather it is better to ‘borrow’ an element. When you edit an element that is not being edited by another team member, you automatically become the borrower of the element and can make the changes you need.
To activate worksets in Revit 2016 or earlier you could click on the ‘Workset’ button in the bottom ribbon or go to Collaborate > Manage Collaboration > Worksets.
However for whatever reason, in Revit 2017 it is no longer possible to activate worksharing via the Workset button. It is only possible via the Collaborate tab > Manage Collaboration panel > Worksets. In Revit 2017 you will be prompted to save the newly created central file before you can proceed.
Hit the New button to create as many worksets you require, then select OK.
When saving the project you will be warned that you are about to create a central model. Select Yes to proceed.
Once the central model has been created, you can then use the Synchronize With Central command and relinquish all the worksets you just created and hence own. Similarly, you can use the Synchronize With Central command when you are ready to publish your work to the central file for the rest of your team to see. Using Synchronize With Central also acquires all the changes that other team members have made and loads those into your local file. You can access this command in a couple of ways:
- Collaborate tab > Synchronize > Synchronize With Central
- Use the Synchronize With Central button up in the top left. This button has a lightning bolt on it and is different to the normal save button, which only saves your local file without publishing to central.
For both options, ensure to check all the available check boxes so that you relinquish elements so that your teammates can work on them.
Now that you’ve made a central file, you should work in a Local File from now on. There are two main ways to do this:
- Firstly, you can simply open the network location of the central file and drag a copy from the network to your desktop or anywhere on your C: drive. Be careful not to move the file – only copy it. This option is fine but you must repeat this option each time you want to open the file so that when you open it, it will have the latest information from the Central file in it. Otherwise there is a risk that your local file will be out of date and have trouble Synchronizing with Central.
- The second option and preferred option, is to use the open command, browse to the central file and open it. By default, it will be set to ‘Create new Local’ file. This prevents you from accidentally working in the central file, which can corrupt the file.
In this previous tutorial I demonstrated how to undertake various view analyses in Grasshopper with Ladybug. Some of these analyses can also now be performed in Revit within Dynamo. This tutorial will show you how to create a 2D isovist by creating filled regions and if desired, assigning the fitness of the view to a room parameter in which it is associated.
One of the simplest methodologies for undertaking a view analysis is to use an isovist. An isovist is the volume of space visible from a given point in space. Isovists are naturally three-dimensional, but they may also be studied in two-dimensions. Back in June, Nate Miller updated his LunchBox Dynamo Package to include a new isovist node, ‘Intersection.CreateIsovist’. Furthermore, with the release of Dynamo 1.2.0, there is now the ability to create filled regions with the ‘FilledRegion.ByCurves’ node. This means that not only can isovists be analysed but they can be visualised and documented within a Revit project. This is beneficial for projects where visibility is importance, such as urban planning, shopfronts in a retail mall, or patient visibility from a hospital’s nurse station. In this scenario, the ‘fitness’ of the solution can be considered the area of the isovist. The larger the area, the greater the visibility.
To simply the workflow I have created the ‘FilledRegion.ByIsovist’ node in the BVN Dynamo package. The script requires an element to define the centre or eye location. I have used a setout point generic annotation family for this. Once the script is complete, this category can then be turned off via visibility graphics if desired.
Next we need to select the walls which will act as a boundary for the isovist. The easiest way to do this on a floorplate is to select a couple of walls and then isolate by category. This will allow you to select all the walls by dragging a rectangular window. (Note that you are unable to shift select multiple elements in Dynamo). The isovist will conform to any window or door openings in the walls.