RTV Tools

Wednesday, November 25, 2015

Quickly Split All Columns by Level without using any Addins in Revit

To do this, we can leverage a nice feature of the builtin Copy/Monitor feature. Its extremely simple, and here are the steps:
  1. Go to a 3D view and Isolate the Columns Category (so you can just see the Columns you want to split)
  2. Select all of them and Save a Selection (this is so we can cleanup later)
  3. Go to Collaborate tab and click Copy/Monitor - Use Current Project
  4. Options - Columns tab, tick "Split Columns by Levels", Ok
  5. Click Copy, tick Multiple, Select all the Columns, then click the little Finish button
  6. Click the big Finish button
  7. If you want to delete the old ones, load the Saved Selection from step 2 and press Delete
  8. Done!
It would be nice if there was a "Split Pipes by Level" box hiding somewhere :)

Tuesday, November 24, 2015

How to Workaround A360 SSO issues by Running another Instance of Revit in Same Windows Session as different User

If you are using multiple instances of Revit, against one Central file, using different 'pseudo' usernames, you may have run into trouble because Autodesk single sign on (SSO) always keeps you logged out in that situation. As soon as you log in, all your Revit usernames get switched back to your SSO username.

Okay, so how can we work around this? Basically, by using psexec to launch Revit using another Windows user. This allows us to have SSO running in one 'Windows user' and SSO logged out in the other.

  1. Ensure you have psexec available
  2. Make a CMD with this text (for Revit 2015):
    psexec -u OtherWindowsUsername -p OtherWindowsUserPassword -d -i "C:\Program Files\Autodesk\Revit 2015\Revit.exe" /language ENU 
  3. Open Revit in current user and sign out of A360
  4. Run this CMD file, and in the new instance of Revit you can sign back into A360
    The workaround and outcome is shown in the image below:

    As usual, there may be complications with this method (such as access to different network resources etc), so please use at your own risk :)

    Monday, November 23, 2015

    Direct Links to the Seek addin for Revit Now Available on the Autodesk App Store

    In case you missed it:

    Previous post:
    What Revit Wants: How to Download and Use Autodesk Seek Addin for Revit

    Batch Checking Dependencies of your Dynamo Nodes and Packages

    Every now and then, you may find that a package upgrade causes some of your nodes to stop working. This may be because nodes have been removed from the package that you were using. You can use the two DYNs here to quickly check for missing dependencies:

    Step 1
    This will find dependencies from a selected package or definitions folder and export them to Excel:
    Step 2
    This will read the Excel file back in, and compare with node names in your Packages folder (may take a while):

    Both of these dyns can be run in standalone / sandbox mode.

    If there are missing nodes, they should appear in the pink box. You could then go to DynamoPackages website, download previous version that had the dyf you want, and then copy the contents of that dyf into your own custom node.

    Friday, November 20, 2015

    Read XML Files and Use In Revit with XML Support added to Bakery Package in DynamoBIM

    XML files are everywhere. And in the BIM world, we have to deal with a range of different xml file schemas, such as BCF, Navisworks Clash Reports and Viewpoints, and so forth. Hiding inside these XMLs there is some very useful information. For example, BCF files often have Element IDs in the viewpoint.bcfv component, and Navisworks XML files often have point XYZ values. Can we easily get access to this information for use in Dynamo, and then in Revit?

    Yes, we can! There were one or two ways to do this in Dynamo before, but here is my take on it...

    Dynamo ships with IronPython, which in turn ships with an XML handler called ElementTree. I have created some basic nodes that give us access to ElementTree functions in Dynamo. Along the way, I learnt a bit about encoding and character sets. It turns out that Navisworks often inserts tricky characters into the XML (like the diameter symbol), so as a workaround (for now) I do a string encoding roundtrip to get rid of these problematic characters. In the same node, I create the ElementTree object: this is a special object that essentially represents structured information about the XML data. The initial import looks like this:

    Once we have this ElementTree object in hand, we can start to do some interesting things, like:
    Iterate through tree to get individual XML elements

     and Show a hierarchical representation:

    With the individual elements, we can Get Attribute names and values, and the Get the children of those elements:

    Obviously, you can immediately do some nice lookups against these lists in Dynamo, depending what information you want. However, on large XMLs this can be quite slow. Happily, ElementTree provides some basic XPATH support, which looks a bit like this:

    With the XPATH support and an understanding of the xml hierarchy, I have created a node to do XPATH calls straight to the ElementTree object:

    Now that we can 'snip' out useful information from the XML, we can do interesting things with it, like make some points:

    When it comes to BCF, its a little bit more challenging. I haven't figured out how to unpack the bcfzip directly to memory (yet), so we have do that manual step first. Once we have a 'folder' from the BCFZIP, we can get the bcfv files from inside it and then get information from them, like this:

    So, in the latest Bakery package are the nodes needed to read a variety of XML files, get information from them, and do some useful things with that information. It was a learning experience for me, and I hope its useful to you :)

    Monday, November 16, 2015

    Batch Convert DWF to Revit using Navisworks

    Sometimes you have a set of DWFs that you would like to work with in Revit. For example, you might have DWFs of site equipment, fences and trucks that would be useful for site modelling in Revit. Here is one way to get those dwfs into a more Revit-friendly format...

    Note: You need to have iConstruct with their Smart IFC Exporter for this workflow

    Phase 1
    Create a container NWD for DWF files, so that you can fix rotation and coordinates:
    1. Append DWFs
    2. Save as rotator.nwd
    3. Append to an NWF
    4. Adjust units, 90 degree rotation about 1-0-0 axis as per this link:
    5. Save as container.nwf

    Phase 2
    Steps to convert DWF to IFC with colours and object selectability:
    1. Open two Navisworks 2016 instances
    2. Open the rotator.nwd from above in one instance
    3. Append any DWFs you would like to convert
    4. Adjust their Units and Transform until they look right
    5. Save the rotator.nwd
    6. Open the container.nwf
    7. Refresh to reload the rotator if necessary
    8. Now, hide everything but 'shell' elements using a search like this:
    9. Save the search set for Item Type = Shell
    10. Set up an iConstruct IFC config...

      Type a Name
      Press Building button
      Expand to IfcBuildingElementProxy, userdefined
      Choose search set for Item Type = Shell from above

    11. Should look like this...
    12. Close config dialog
    13. Go to Smart IFC Export and choose the export config you just saved 
    14. Fill out next dialog and press ok
    15. Choose target IFC location
    16. Wait for Navisworks to export the IFC
    Phase 3 - into Revit
    After IFC is created, open Revit. Ensure you have latest IFC updates installed, then open the the IFC. Wait for Revit to complete importing... For the most part, you should get a pretty good looking result. One exception is where the DWF had one 'shell' with multiple materials, like this:

    In any case, now you have a bunch of 'Revit elements' (yes, I use the term loosely) that can be made into Model Groups. They aren't in families, but you can make them into little rvts to load as links. I realise there are some limitations in this workflow, but in some cases there is no other way...

    If you are interested in more to do with DWF conversions, check out these links:

    What Revit Wants: How to Convert a DWF to Editable Format, or How to Export from Navisworks and Keep Modelling in BIM
    What Revit Wants: Convert DWF to DWG using free tools

    Future post: hope to see some Dynamo method to consume DWFs and create DirectShapes in Revit :-)

    Thursday, November 12, 2015

    Access Revit View Filters in an Alphabetical List

    If you want to edit Revit view filters, you may be frustrated by the fact that the view Filter Edit Dialog box is sorted 'historically' - most recently created at the end of the list:

    While we can't 'sort' this list in Revit 2015, we can use the first (alphabetical) list to directly access a Filter by using the Edit button:

    Yet another one of these little things where it helps if you know What Revit Wants...

    Friday, November 6, 2015

    Free Revit Model Checker and COBie addins

    Jason over at rvit has posted about a suite of free Revit tools, and here they are:
    I'm particularly interested in the Model Checker... it looks pretty comprehensive:

    Use these links to download the installation file for Model Checker depending on your version of Revit.

    Revit 2016

    Revit 2015

    Revit 2014

    Revit 2013

    New Revit Tools Website Launched | RVIT

    Wednesday, November 4, 2015

    View Status Snapshot for Federated Models

    It can be pretty hard to track what is visible in a big federated model, and even harder to figure out when something has been changed or updated. Until now...

    Check this little node out:

    This gets five pieces of information and writes each of them to a View instance parameter. Currently, it works in the context of the currently active view in Revit. The information acquired is as follows:

    • current date / time
    • worksets currently opened
    • RVT links that are visible in the view
    • the file sizes of those links
    • the date modified for those links
    The 'list items' are converted to a string with line breaks. Then when it is referenced in a Label in a View Title family (on the far right of image above), it basically shows up as a list.

    Future applications of this can easily include reading the link status from the view parameter (by converting the string back to a list), comparing it to current link status, and then immediately showing what models have been updated and need to be reloaded...

    Tuesday, November 3, 2015

    Bulk Copy Views to New Associated Level in Revit

    Ever wanted to bulk duplicate views from one level to another level? There are various addins and ways to do this, but it is also relatively simple in Dynamo:
    1. Get views using Dynamo definition, and
    2. Get view element IDs and send them to clipboard
    3. Close Dynamo
    4. Select by ID... Paste the IDs
    5. Copy (Ctrl + C)
    6. Paste - Aligned to Selected Level
    Using some Bakery nodes, the Dynamo definition would look something like this:

    Associated links:
    RevitAPI: How to resize cropbox of view? - AEC DevBlog
    Copying Views Selected in Projec... - Autodesk Community
    2012 Filtering for all instances, of all types, of a particular family.

    Copying Views
    RevitCat: Copying Views Between Revit Projects

    Fixing DWG Section Visibility and Setting DWG to a Phase in Revit

    Ever had that annoying problem of your entire dwg showing up in Section Views, regardless of where it is cut? If so, check out this tip from Chad at Revit KB:
    ...if you link the DWG into an In-Place Mass instead, then when the section cuts through the Mass/DWG it will only show just the elements which are being cut by the section.
    when placed inside a Mass, that Mass can then be Phased which also means the DWG inside it will too.


    How Can I Get Started With Dynamo?

    One of the biggest challenges for many long-time Revit users is that initial 'starting point' of getting into Dynamo. It takes a bit of time and effort to make that transition...

    Happily, as with Revit, the community is the key. The community is full of people who are providing free packages, definitions, and code, and free advice to new users. But where can we find all of this info? Check out this post on Kyle Martin's blog. He gives some great tips on how to integrate Dynamo learning into your daily work.

    Here are a couple of comments I enjoyed:
    • been using Dynamo for less than a year with no prior visual programming experience and it has made a significant impact on the way I approach production
    • Dynamo adds an additional layer of control to overcome Revit limitations by providing the capability to gather and restructure information and elements in the model, thus creating the potential for repetitive task automation

    I added some of the feeds he mentioned to my super aggregator feed at:

    Full post at:
    Getting Started with Dynamo — Kyle C Martin

    I have also reproduced some of his links here:
    ... the tutorials on the Learn page of 

    the Dynamo website
    the Primer 
    the Dynamo Blog
    The Dynamo Community Forum ...

     ... there are many blogs produced by pure Dynamo enthusiasts that have helped me in my journey. I highly recommend that you check them out if you are looking for answers or inspiration:

    Proving Ground (io) & The Proving Ground (org)
    Havard Vasshaug's blog
    Simply Complex
    What Revit Wants
    Sixty Second Revit
    AEC, You and Me
    Jostein Olsen's blog
    Revit beyond BIM
    Enjoy Revit
    Kyle Morin's blog
    The Revit Kid
    The Revit Saver
    SolAmour's extensive list of resources

    Listen to the Dynamo Team explain the history and recent popularity of Dynamo on the Designalyze Podcast.

    Thursday, October 29, 2015

    Big Update to Bakery Package for @dynamobim

    I've had a bit of struggle with Package Manager lately, but I'm happy to report I was able to get a new version of Bakery uploaded today. I'm pretty sure my issue was 'too many backups in the dyf\backup folder', so that may help you if you are having problems uploading. The new version is 2015.10.291:

    Recently, I have made an effort to reduce dependencies, but there are still a couple like archi-lab and Clockwork.

    Here is a list of my main nodes, with these comments
    • some have been forked or imported directly from other packages (see note about dependencies above), and full credit goes to those people who made the original versions
    • some are sub-nodes of main parent nodes that I have yet to go through and hide from the library. I have a big habit (bad?) of making nodes to handle one item and then using them in List.Maps.
    Anyhow, here they are:
    Boolean Input to Variable String Output
    Bruteforce Get Elem ID and Two Parameters and Make List of Strings
    Bruteforce Get Parameter Value by Name
    Bruteforce Get Parameter Values when Multiple Entries
    Bruteforce Get Parameter via String Split for Single element
    Bruteforce Get Parameter via String Split V2
    Bruteforce Get Two Parameters and Join to One String
    Built In Name Lister
    Check DYF folder for Dependencies in Package Folders
    Check for Duplicate Parameter Values and Make Selection Set
    Check for SetParameter Nulls and Report Info on Elements
    Check if Elements are Inplace ( In-place Families )
    Check Project Shared Parameter against benchmark GUID
    Check Reference Level Offsets against a Tolerance Input
    Check Specific Shared Parameter has correct GUID
    Clean List of Indices to Remove Negative Values
    Clean Warning Types from Error Report HTML
    Collect all FamilyInstance using Element Types
    Collect All Tags in Project
    Collect Elements from List of Category Names
    Collect Elements in Rooms and Show Detailed List
    Collect from Link using Category and Parameter Value
    Collect Tag Elements in Specific View and Send Ids to Clipboard
    Combine Column from Three Excel Files into One Long Column
    Compare Two Columns From Excel and Report Differences
    Compare Two Lists by Item and Return Item Differences
    Compare View Filters added to Two Views or Templates
    Convert Category Name to Built In Category Name
    Convert List into List of Strings with Line Breaks
    Convert String with Line Breaks into List of Strings
    Copy Parameter to Parameter in List of Elements
    Copy Parameters Node for Nesting Process
    Copy Property to Parameter for List of Elements
    Copy Workset Name to Target Parameter
    Create Floors From Rooms v1
    Create Floors From Rooms v2
    Cycle Entries of one List by List of Lengths
    Cycle One Item Into List to Match Length of Other List
    Design Option Summary
    Design Option and Design OptionSet
    Document Design Option Sets
    Document Design Options
    Document Phases
    Does this Document Contain Category
    Duplicate View and Isolate Elements
    Duplicate View and Rename and Isolate Elements
    Duplicate View and Rename and Isolate for System Types
    Element List check for Inplace Families
    Element Name Universal
    Element Type for Element Lists
    Element Type for Linked File Element Lists
    Element Type for Linked File Large Lists
    Enumerate Worksharing Display Modes for Document
    Example FFE Category List for a project
    Export Family and Type Name with One Type Parameter to Excel
    Export Images using many input variables
    Export to Image using Directory and View Parameter
    Extract Specific Tag Entries from XML as Unique List
    File List from File Path showing Files in SubDirs
    File List from File Path
    File Size in MB from File Path
    Filter a List by a Given Value with second list passthrough
    Filter Element List by Parameter Value
    Filter Element List by Type Parameter Value
    Filter Items in List by String Contains and Return List and Unmatched
    Filter One List by String Search in Another List
    Filter Revit Selection to View Crop Elements and Names
    Filter Views with Two Criteria and Return Views
    Find Nearest Revit Level for a Given Z value
    Find Pipe Insulation on Workset - Get Host Pipes - Save to Selection
    Find Revit Level for Points by Elevation
    Find Sheets and Views Where an Element is Visible
    Find Worksets that contain Revit Link Instances
    Flat List to List of Strings
    Flatten List and Replace Null with NULL VALUE
    From File Path into RVT Build Information
    Get Actual Elements from Linked Tag Ids
    Get All Revisions
    Get All Revit Links as Element List
    Get Boundary Curve for One Room by Perimeter
    Get Boundary Curves from Room List
    Get Build Number and Worksharing from RVT file
    Get Build Number from All RVTs in a Folder
    Get Categories from Elements
    Get Categories with Builtins
    Get Categories
    Get Design Option Element by Set Name and Option Name
    Get Element Parameters and Split to Names and Values
    Get Element Position Rotate Mirror
    Get Element Room parameter from API
    Get Elements and Types for Certain Categories in Links
    Get Elements from Link Document Using Category
    Get Elements in Link using Name Search and Category
    Get Elements Parameter List and Show Unique Values
    Get Family and Type List for Project
    Get Family from Element
    Get Family List for this project
    Get Host Pipe ID from Pipe Insulation
    Get Indices of Null Values
    Get Info from a Linked Element Tag
    Get Link Document from Link Instance Id
    Get Linked Element from Element Id and Doc
    Get Linked RVT Documents
    Get List of Elements at OriginalNestingLevel
    Get list of GUIDs for a Specific Shared Parameter Name
    Get List of Linked Elements from Id and Doc
    Get Open Worksets and Write to View Parameter
    Get Open Worksets
    Get Project Location Details
    Get Pure Filename from Revit Link Name String
    Get Revit Link Names from an Element List
    Get Revit Selection and Delete
    Get Room Geometry and Filter by Level Elevation
    Get RVT Link Filenames with Element and Type Workset Info
    Get Sheet Element from View
    Get Standard Views as single list
    Get System Related Properties of Element
    Get Tagged Linked Element Id
    Get Two Parameters and Join to One String
    Get Type Parameter for Tagged Linked Element
    Get View Dependency as Internal not String
    Get View Parameter and Parse for Locate32 Search
    Get View Template for View
    Get Viewport Elements Using View Name Search
    Get Workset Info for RVT files without opening
    Get Worksets with all Properties
    If Equal Return Index using IndexOf
    ImageSettings Export Ranges
    ImageSettings File Types
    ImageSettings Fit Direction Type
    ImageSettings Image Resolution
    ImageSettings Zoom Fit Type
    Inplace Family Check Faster
    Is Family Instance InPlace
    Join Two single Strings to One single String
    List All Views
    List Design Option Information
    List Detailed View Information for a List of Views
    List Duct and Pipe Related Elements
    List DWG Link Information
    List Elements in View across Revit Links
    List Groups
    List Import Information
    List Nodes in DYFs for an Entire Folder
    List of Duct and Pipe Categories as Built in names
    List of float double to list of Int
    List of Model Elements simplified with Annotation removed
    List of Model Elements simplified
    List of System Related Categories
    List Parameter Info with Shared Parameter GUIDs
    List Phase Information
    List Revit Link Instances Visible in Active View
    List Revit Links Visible in View
    List Room Names from API and show failures
    List Shared Parameter GUIDs only
    List the View Worksets of All Tags in Project
    List Unique Categories Present in Set of Elements
    List View Filter Information for View or Template
    List Views not on Sheets
    Load Selection Set as Elements
    Make Unique Identifier and Set it to Parameter
    Match Link Level with Level in Host using Elevation
    Mirror an Element
    Mirror Element Using Origin and Normal Vector
    One Face to Polycurve Outline
    one Room to its PolyCurves
    Parse and Split String to a List
    Parse CSV Text of Elem IDs to Actual Revit Elements
    Parse Error Report and Provide Summary List
    Parse IFC File
    Parse Revit Error Report HTML and Output Summary
    Parse Revit Journal File
    Place Family by Point Cloud
    Place Free Instances to Match Project by Category
    Polycurve to Nearest Revit Level by Elevation
    Process Family Type Excel Sheet and Get a Value To Write
    Project Base Point Details
    Read CSV to Flat List
    Remove Characters from end of single String
    Remove Chars from End of Single String
    Remove Empty Strings from List
    Remove Equal Items from List and Preserve Counts
    Remove First and Last Characters from String
    Remove First Revision from Each Sheet
    Remove List from List by Item not Value
    Remove Revision From Sheet subnode for listMap
    Rename Families by Replacing Prefix
    Rename Families with a Prefix
    Rename View by Replacing Prefix
    Rename Views by Appending Selected Suffix
    Report Dynamo Package Details by Folder
    Report on Inplace Families
    Report Revit Link Worksets
    Report RVT Links Visible in Views on Sheets
    Room to Element Geometry Test for Preflight
    Rooms to PolyCurves
    Rotate Families Around Origin by Angle
    RVT Information for All RVTs in a Folder
    Search for Certain Build Number in Folder of RVTs
    Search for Generic Annotation on Sheet and Copy Id to Clipboard
    Search for Type Parameter Value in List of Elements and Return Elements
    Search One List Based on Second List and Get Values
    Select based on a single builtin name
    Send Element IDs to Clipboard
    Set Design Option by View Parameter
    Set Instance Parameter by Type Parameter
    Set List of Values to List of Elements for One Parameter
    Set One Parameter to Many Elements
    Set OriginalNesting Level Parameter for all FamilyInstances
    Set OriginalNestingLevel Parameter to Element
    Set Parameter of View based on a Character in Sheet Number
    Set Visible RVT Links to Parameter for Current View
    Set Workset for a Single Element
    Set Worksharing Display Mode for View
    Show Dependency Nodes for one DYF
    Show Element Workset as Internal db name
    Show List of Revit Links that are never visible on Sheets
    String Replace using RegEx
    String Search All Element.Parameters for a Single Element
    Summary and Node Search for a Folder of DYFs
    Summary of Selected Parameter Values for Duct and Pipe Elements
    Summary of System Related Elements
    Summary of Unique Values present in List
    Transpose Data within Excel Sheet
    UUID GUID Generator for Lists
    View Statistics
    View Templates for View List
    Write Empty Linked Tag Information to Excel
    Write Parameters from One Element List to Another
    Write Shared Parameter Check to Excel
    Write to Excel using only Data and File Path Inputs

    Tuesday, October 27, 2015

    What is Autodesk Building Ops?

    It is Autodesk's mobile-centric implementation of an integrated FM system... It hasn't been around for long, but it already allows you to export Equipment directly from BIM 360 Field. It also allows you to view the equipment in context, and attach photos and other information.

    It would seem like the current cloud model and sharing workflow from Autodesk currently looks something like this:
    • BIM 360 Glue - Design
    • BIM 360 Field - Construction
    • Building Ops - Facilities Management
     Here's a video showing the Field connection:

    More info:
    How Do I Export Equipment from BIM 360 Field? | Building Ops | Autodesk Knowledge Network

    Running Multiple Instances of OwnCloud with Windows User accounts and psexec

    OwnCloud is a free file sharing and syncing software, and for the most part it works ok. I don't think it really compares with a full featured, appliance based enterprise solution... but, its free. You may find it useful for sharing folders on a BIM project, but it can be prickly at times.

    If you are using it and want to run multiple instances, perhaps to work with multiple folder structures or different OwnCloud permission accounts, you can do it this way (tested on Windows 7 and 10):
    1. Install OwnCloud and psexec
    2. Make a new local PC user account to run the instance.
      In Windows 10 this is by:
      "Add, edit or remove other users" settings option from Start menu, then
      "I don't have this person's sign-in information", then
      "Add a user without a Microsoft account"

      In Windows 7 it was the more traditional user management, which you can access from Computer Management - Local Users and Groups - Users - rightclick "New User"
    3. Set a password for this new user and give them Admin permissions (consider security of this in your environment...) You can set a password using Control Panel:
      \User Accounts\Manage Accounts\Change an Account\Create Password
    4. Make a CMD with contents like this:
      psexec -u YourNewOwncloudUser -p YourNewOwncloudUserPassword -d -i "C:\Program Files (x86)\ownCloud\owncloud.exe"
      This cmd will launch a new instance of OwnCloud executable under a different username using psexec...
    5. Go to %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup in Windows Explorer
    6. Make a shortcut to the CMD from step 4
    7. Double click the shortcut now to test it
    8. First run will give you the setup stages for OwnCloud (Server, Username, Password). You don't ever need to use that user account you made for anything else, it is just there as a separate identity for the OwnCloud process
    9. Before adding folders to sync, you should add Read/Write permissions to a Folder on your pc to that new user you created in step 2, something like this:
    10. In Task Manager, it will look something like this:
    Now, you have a new instance of OwnCloud, running at startup and syncing with different OwnCloud credentials to a folder on your PC.

    Friday, October 23, 2015

    My Top 3 New Features from Revit 2016 R2

    Autodesk has kindly offered some new features to Revit 2016 users on Subscription in the form of another R2 release. Here are my favourite parts:
    1. Unload links per user - unloading a link For Me won't unload it for the rest of your team now
    2. Family Visibility Preview - see what your family will like before loading it in
    3. Global Parameters - use these as 'global constants' in other formulas
    Some of the features of  2016 R2 were already available to Revit Sundial users.

    Watch the playlist at:

    Read the official post at:
    Revit Software Updates Enhance Project Performance and Help Users Better Capture Design Intent

    Revit 2015 Update Release 10 Direct Links

    For Revit 2015 R2:
    This update requires one of the following:
    Autodesk Revit 2015 R2 for subscription customers (build: 20140905_0730)
    Autodesk Revit 2015 Update Release 9 for R2 for subscription customers (build: 20150704_0715)


    Autodesk Revit 2015 Update Release 10 for R2 Readme

    Enhancements (not live yet):

    Additional links will be added as they become available...

    Wednesday, October 21, 2015

    Create Floors from Rooms across Multiple Links in Dynamo

    Update... v2 has been published in Bakery package as:
    Create Floors From Rooms v2.dyf

    All kinds of weirdness with Package Manager at the moment, so I am sharing my entire 'packages' folder including Bakery and dependencies for 0.8.2 at this link:

    It uses a two different methods to get Room Boundary outlines: first try is with a Clockwork node, next try is by Element.Geometry. It also sets the Room Number to the newly created Floor Comments parameter.

    Just letting you all know that this new node has just been published in the Bakery package:
    Create Floors From Rooms v1.dyf

    The scope:
    This 'version 1' node takes the Room elements, converts to Element.Geometry, grabs the face at the host level, gets the curves from the face, uses Konrad Sobon's Group Curves node to assist with making the Polycurves, then matches the right Polycurve with the outer boundary using a bounding box method. Then, it feeds the outline to a Floor creation node (after matching link Level-host Level if necessary), and then sets Element Id, Room Number and Room Name as one string to the parameter you select.

    You can use it across links with some other Bakery nodes too, which would look something like this:

    Unfortunately, sometimes the builtin Element.Geometry node will fail to convert the Room to a solid. This warrants further investigation, but only affected about 15 rooms of 718 in this particular test. In the meantime, I simply report which rooms fail in the 'geometry failure' output:

    Future improvements needed:
    • handle Element.Geometry failures with some other method
    • cut out Floor Openings where voids are present in the Room space
    • match Base Offsets by moving created floors to correct height
    • get approximate Room Height by Volume and drive or report desired Floor Thickness
    Here is the 1 minute demo:

    And the dyn:

    If you are on Dynamo 0.9 or newer, you may want to check out Marcello's Direct Shape method over at:
    Simply Complex: Create 3D Rooms in Revit Using DynamoBIM