To assist with file and visibility management, most organisations will adopt a workset standard where elements of a particular category are assigned to a specific workset. For example, structural columns might be assigned to the ’10_STRUCTURE’ workset. Additionally, before issuing your model to a third party, you’ll want to ensure everything is on its correct workset so they can load only required worksets.
The problem
The main challenge with assigning elements to specific worksets is that it is very time-consuming. To further complicate things, every organisation will have a different standard and naming convention. More often than not, elements are categorised by their category. For example, all elements of category planting and entourage might be assigned to the ’50_SITE’ workset.
However, other times, elements might be categorised by an instance parameter. For example, a floor might be categorised based on the ‘Structural’ parameter. At other times, elements might be classified by a type parameter. For example, doors may be categorised based on their ‘Function’ type. This complexity creates a disturbing array of possibilities.
Assignment elements to workset with Dynamo
To solve this issue, Parametric Monkey has developed a Dynamo graph, available as part of our Dynamo Package Development service. The graph references an Excel spreadsheet that contains all of the category-workset mappings. This method enables end users to customise the workflow based on their organisation’s standards.
The template contains all model, annotation and analytical built-in categories and fields for their mapping. Note, however, that care needs to be taken in populating these fields due to various idiocrasies found in Revit. For example, curtain grids and curtain panels are technically categories. However, their workset is read-only and inherited by its parent wall. In such scenarios, the workset mapping (Column C) should be left blank.
Additionally, most built-in annotation categories are view-specific and cannot be assigned to a user-generated workset. The exceptions are levels, grids, reference lines, reference planes and scope boxes, which can be assigned. Therefore, only the levels, grids, reference lines, reference planes, and scope box categories should be populated. The remaining categories should remain blank.
Custom rules
One of the best features of this approach is that it enables custom rules (column D-H). If elements of a category should be classified by a rule instead of by category, the workset mapping (column C) should be left blank. The rule type (column D) defines if the rule should be applied to an instance or type. The parameter name (column E) will be checked against a value (column F). If the value is equal, the If True (column G) workset is applied. Else, the If False (column H) workset is applied.
For example, in the image above, doors are classified based on their type. If the family type ‘Function’ parameter equals ‘1’, it is placed on the ’00_FACADE’ workset. Else, it is placed on the ’30_INTERIOR’ workset. Note that for YES/NO parameters, TRUE/FALSE or 1/0 can be used. However, you’ll need to specify the list index for Enum parameters. For example, with the Door Function parameter, ‘Interior’ = 0, and ‘Exterior’ = 1.
Dynamo Player
Once the Excel spreadsheet has been populated, it can be saved in a central location and reused for multiple projects. The only input needed for Dynamo Player is the file location of the Excel spreadsheet. Once run, elements will be automatically assigned to their respective worksets. The graph is best combined with our create isolated workset views graph to easily visualise the workset breakdown.


Conclusion
Using automated routines such as this will save your team countless hours. And best of all, your extended consultant team will love you for it, as it will make their lives easier. To learn more about our Dynamo Package Development service, drop us a line and discover how we can automate your Revit workflows.




