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 dyfbackup 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

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

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 AccountsManage AccountsChange an AccountCreate Password
  4. Make a CMD with contents like this:
    psexec -u YourNewOwncloudUser -p YourNewOwncloudUserPassword -d -i “C:Program Files (x86)ownCloudowncloud.exe”
    This cmd will launch a new instance of OwnCloud executable under a different username using psexec…
  5. Go to %APPDATA%MicrosoftWindowsStart MenuProgramsStartup 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.

    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

    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…

    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

    Let’s say you have a Generic Annotation family with about 60 different view states controlled by visibility Yes/No checkboxes. These visibility states are linked to Sheets, and the Generic Annotation families themselves are placed in the Sheet views in Revit. I’m sure you are thinking “why??” at this point, but let’s skip past that part…

    Can we drive the Annotation family visibility states based on its ‘host Sheet’ in Revit? Not really.

    Can we create a mapping table in Excel, Dynamo-push a single integer value into the Annotation instances based on the host Sheet, and drive the visibility by formula that way? Yep.

    Here’s the basic steps:

    1. I used dir and Notepad++ to make the list, one column in Excel for the lookup value (I used Sheet Number), and one for the parameter I want to get and use
    2. This relied on having the Family parameter list sorted Ascending in the Family Editor

    3. The Excel sheet looked a bit like this – notice how the driving parameter is an Integer?

    4. This is the work in progress in Dynamo – getting the Generic Annotation families, matching them up and getting the related Excel integer value

    5. This is the completed dyn, with the push back into the Element Parameter to drive the visibility – see how the string has to get converted ToNumber before pushing into the Integer parameter?

    6. And here is one instance in the project

    7. After running this once, all visibility states are set properly throughout the project

    Yet another example of @dynamobim making the Revit-impossible, possible 🙂

      A recent Youtube upload gives us a teaser-style look at what some of the features of Project Alexandria may be, including:

      • part of BIM360 platform
      • handling 2D documents like plans, drawings etc
      • ability to create and assign issues
      • iPad implementation, possibly able to attach photos to issues etc

      This is a competitive market now… Revizto has a good head start on some of this, and FieldLens has a nice mobile implementation. So, the question is, will Project Alexandria (BIM360 Docs??) be compelling enough?



      Many months ago I was sitting down having a coffee with one of the top sales reps for 3Dconnexion. He had a strictly confidential release to share with me… ‘a 3 button mouse!’ I was a little skeptical at first, but having received and tested a CadMouse, I can honestly say it is an incredibly high quality device that is smooth, powerful, and very pleasing to use.

      Unboxing and Setup
      My initial impression on unboxing and viewing the device was that it looked amazing: smooth brushed aluminium base and generously sized.

      When you pick up the CadMouse, it feels both sufficiently weighted and yet not overly heavy. I received mine with the CadMouse Pad: a very generously sized and high quality mouse pad that pairs perfectly with the CadMouse for precision work.

      I expected that setup would be easy, and as it is a USB device it was simply plug-and-play to get started. As I was already a SpacePilot Pro user, I had 3dxWare installed, but I went ahead and downloaded 3dxWare 10 for Windows, version 10.2.8 from this page.**

      Then I checked out a few of the settings. The Advanced Settings allow a polling rate of 1000hz!

      And the Buttons page reminds you just how many buttons and features the CadMouse has available:

      A few things to note here: the dedicated middle mouse button, and the wheel ‘click’, are actually separate buttons on the CadMouse, meaning you can apply different commands to these. Also, the small black circle is yet another button that (by default) calls up a Radial Menu: see bottom right of image above. I have written about Radial menus before, and I absolutely love them. Now, I can have Radial Menus on my left hand with the SpacePilot Pro, and on my right hand with the CadMouse. Custom BIM control scheme happiness!

      A realisation…
      How do you hold your mouse currently? I was a ‘fingertip user’, and I would use my middle finger to scroll the mouse wheel. However, I found it much more comfortable to do a palm-hold on the CadMouse, and rest my hand over the mouse. This allowed immediate access to the middle button and the right mouse button. My index finger would then use either the wheel or the left mouse button. It was definitely a significant ‘ergonomic shift’ for me, but in the end it is more comfortable, and ultimately I can click any feature on the mouse at any moment…

      Also, this results in more movement being handled by your entire forearm, which puts less strain on your wrist. And it also starts to make sense why that mouse pad is so big 🙂

      However, after speaking to a  3Dconnexion global rep, I decided to turn my mouse speed “UP” in the 3dxWare properties (but keep Windows mouse speed at the neutral position). This really helped me get on board with the ‘whole mouse in the hand’ idea.

      Also, if you hold the whole mouse in your hand, you have easy access to the 3 main mouse buttons (left, middle and right). And, to use the Radial Menu button, just lift the tip of your middle finger and then the base of your middle finger can click that button. It sounds a little weird, but it does work.

      Daily Use
      The mouse is light and comfortable to use, and being wired it means that you never have to worry about running out of battery. There are plenty of buttons to customize, so you can really tweak the settings (including the Radial menu button) to maximize your productivity. Below I focus on BIM programs, but you can customize individual settings in Excel, your internet browser, Windows Explorer, whatever program you like. These settings are stored in an xml file that can be backed up, shared, and even directly edited if necessary.

      In Revit
      Using the CadMouse in Revit is a real pleasure. The high resolution makes navigation smooth (provided your system can keep up). However, the real benefit is that we can take Keyboard Shortcuts off the keyboard and put them into your hand.

      Many of us are probably zooming around in our mouse on the right hand, and possibly smashing Revit keyboard shortcuts with the left. But with Radial Menus, you can map any keyboard command in Revit directly to the mouse. As we know, Revit has a pretty powerful shortcut mapping dialog, so we can map almost any Revit command to the CadMouse with this workflow 🙂

      With the Radial Menu and Gestures, it simply takes one click to allow access to 4 different commands, and you just swipe in the direction that you want to trigger that command.

      Some other Revit-related possibilities include mapping your basic UI toggle commands like the Properties Palette and Project Browser to the CadMouse. Then you can basically trigger a ‘clean screen’ mode in Revit that hides these panes, all thanks to the customization potential of the CadMouse.

      In Navisworks
      There are two main features that give the 3Dconnexion CadMouse a real edge in Navisworks:

      1. The Quick Zoom buttons
        If you have set up Navisworks with a pretty fast frame rate, and Guarantee Frame Set in your Display options, the CadMouse Quick Zoom buttons are a really nice way to get in close on a feature in your model, and then step back out quickly. You literally just need to point your mouse at something, and then press Quick Zoom In once or twice to get in real close. Then click the Quick Zoom Out to step back to see the model in context.

        This Screencast is a quick demo of the feature:

      2. The Radial Menu button/s
        There are certain things in Navisworks that are not immediately easy to map to a single keyboard shortcut. However, you can record a multiple key press macro in the powerful 3dxWare software, and then map these macros straight onto your Radial Menu button on top of your mouse.

        Added to this is the fact that you can map multiple radial menus to various buttons on the CadMouse. For example, you can have one Radial Menu on the top button, one on the middle mouse button, and more if you want. I set up these two custom menus with custom commands for Navisworks:

        For markups

        For navigation

        And here is a Screencast. Notice how I have enabled gestures and I don’t even need to click, I can just move the mouse in one of the cardinal directions and that command is activated:

      3Dconnexion already had a powerful suite of 3D modelling hardware products. By adding the CadMouse to their lineup, and integrating all of these devices with the 3dxWare software suite, you can have absolute control over your navigation and mouse control schemes, and it is individually customizable to each program you work with!

      The 3Dconnexion CadMouse itself is a high quality device, and it is a real pleasure to use. It reminds us why mice used to have 3 buttons, but it adds so much more. If you are someone who loves customizing your working environment to maximize your productivity, the CadMouse will enable a level of control you may not have had before. Overall, the CadMouse would make a great addition to anyone’s BIM hardware kit.

      **Note: If you have any problems installing LCD software on Windows 10, you may need to uninstall Logitech Gaming Software to get the 3dxWare LCD driver to install (at least I did). You can also try Microsoft Fixit.

      Some general notes and tips are included below:
      The SpacePilot Pro and CadMouse in Revit
      Invert your top 3 axis, and drag the CadMouse to drop the orbit point when navigating with the SPP.

      Troubleshooting steps
      To clean up and refresh your profile, you can:
      …stop the driver (START>>3Dconnexion>>DRIVER>>STOP DRIVER), then browse to:
      This folder contains folder(s) which in turn contain files named: USER.CONFIG
      …delete these folders while the driver is stopped, start the driver again, and then reconfigure your preferences.

      Reinstall Steps
      If you have any issues with the 3dxWare software, like if it doesn’t remember changes you make to specific profiles, you can reinstall using the steps in the FAQ here. I backed up my xml files first from:
      C:UsersLuke JohnsonAppDataRoaming3Dconnexion3DxWareCfg
      to a backup folder.

      Profile Sharing
      While we are talking about 3Dconnexion, I’d like to refer you to the forum where you can share custom XML mapping files for various programs, such as my Navisworks profile for the SpacePilot Pro here: