Let’s say you have a set of Excel files and you want to feed that information into one Excel file, to allow you to do summaries or produce Charts. How would you go about it? Here is one way:

Install Power Query from:
https://www.microsoft.com/en-us/download/details.aspx?id=39379&CorrelationId=85f847dd-369e-4417-b604-6a2f3c673084

Use this function (copied from link below) to import multiple XLSX to one sheet.

 //Define function parameters  
(#"Directory containing Excel files to combine" as text,
optional #"Name of each Excel object to combine" as text,
optional #"Use first rows as headers" as logical) =>
let
//If the optional Excel object name parameter is not set, then default to Sheet1
ExcelName = if #"Name of each Excel object to combine" = null
then "Sheet1"
else #"Name of each Excel object to combine",
//If the optional Use first rows as headers parameter is not set, then default to true
UseFirstRowsAsHeaders = if #"Use first rows as headers"= null
then true
else #"Use first rows as headers",
//Get a list of all the files in the folder specified
Source = Folder.Files(#"Directory containing Excel files to combine"),
//Filter these to only get Excel files
OnlyGetExcelFiles = Table.SelectRows(Source,
each ([Extension] = ".xlsx")
or ([Extension] = ".xls")),
//Find the full path of each file
FullPath = Table.CombineColumns(
OnlyGetExcelFiles ,
{"Folder Path", "Name"},
Combiner.CombineTextByDelimiter("", QuoteStyle.None),"Merged"),
//Get a list containing each file path
ExcelFiles = Table.Column(FullPath, "Merged"),
//Define a function to get the data from the specified name in each Excel workbook
GetExcelContents = (FileName as text) =>
let
//Connect to the workbook
Source = Excel.Workbook(File.Contents(FileName), UseFirstRowsAsHeaders),
//Get a table of data from the name specified
//If the name doesn't exist catch the error and return null
ExcelData = try Source{[Item=ExcelName]}[Data]
otherwise try Source{[Name=ExcelName]}[Data]
otherwise null
in
ExcelData,
//Call the above function for each Excel file
ReadAllWorkbooks = List.Transform(ExcelFiles, each GetExcelContents(_)),
//Remove any null values resulting from errors
IgnoreNulls = List.RemoveNulls(ReadAllWorkbooks),
//Combine the data from each workbook into a single table
CombineData = Table.Combine(IgnoreNulls)
in
CombineData

Here are some of the steps to get the function into Excel:

Read more at:
Combining Data From Multiple Excel Workbooks With Power Query–The Easy Way! | Chris Webb’s BI Blog

I recently had the pleasure of presenting at the 1st Build SA event of the year. Overall, it was a very informative event that packed heaps of useful content into a half-day of presentations, labs and discussions of real world case studies.

You can get tickets for BuildSA Event 02 – Documentation and Deliverables Part 1 here at this link.

And… here are the downloads from my session on IFC interoperability and conversions:
Slideshow
Speaker Handout
Hands on resources for Lab

(The one missing piece that you don’t get access to is the larger resource download package. If you want to get hold of some of these extra goodies, may I suggest that you attend Build SA Session 2 as per link above? )

Embedded slides:

Embedded handout:

Did you know you can override the lineweights and colors of a Generic Annotation or Tag and its Leaders in Revit? You can use Visibility / Graphics annotation tab like this:

But what if you have two Tags that are of the same category, say Detail Item Tags, but you want to override them differently? You can’t use a normal model-based filter, as these generally do not act on annotations. However, you can use a selection-based filter…

Just:

  1. Ensure you are using a unique Type of Tag, then right-click, Select All Instances, In Entire Project
  2. Save Selection, and choose an obvious name
  3. Go to your view filters (in the relevant View Template if necessary) and add the Filter you named in step 2
  4. You can now freely override those Tag elements separately to any existing overrides

Now, keep in mind that you need to manually update this selection-based filter. You might make it part of your printing workflow to do steps 1 and 2 above immediately prior to printing, thus updating the saved selection set to be in line with the current status of your model.

Cool! My Lumia 930 and Surface Pro 3 will be all happy now 🙂

The 123D family recently expanded to include 123D Catch and 123D Sculpt+ for the Windows Store. 123D Catch is also now available for Windows Phone through the Windows Phone Store. 

   
This breaks new ground on the Windows mobile platforms for 123D and broadens the availability of these powerful, free apps for anyone with a Windows device. 

For those new to the apps, 123D Catch uses the camera on your phone or tablet to shoot photographs around something, then upload the photos to the cloud where they are turned into a realistic 3D model. 

123D Sculpt+ is a digital sculpting application for tablets, allowing beginners to get into digital 3D sculpting and professionals to do their work on the go.

Read more / via:
123D Captures Windows Phones and Tablets – 123D Blog

2015 may be remembered as ‘the year the BIM podcast became a reality’ (among other things, I’m sure 🙂

Here is a list of recently established but active podcasts related to BIM and the Built Environment. I have provided RSS links, and will update this list as more become available:

BIMThoughts – BIMThoughts is podcast about BIM technology and techniques.
RSS: http://bimthoughts.com/feed/podcast/

Podcast | Designalyze
RSS: http://www.designalyze.com/taxonomy/term/120/all/feed

Autodesk Launches Podcast Channel to Explore the Future of the Built Environment
RSS: http://feeds.soundcloud.com/users/soundcloud:users:149177069/sounds.rss
Episode with Adam Sheather: link
The Architech Show
RSS: http://www.thearchitechshow.com/feed/

Konrad Sobon has released a very cool and powerful new node package for Dynamo called Bumblebee. I did some very basic beta testing on some of his code a while back, and it looked promising then. It has some more polish now and it will certainly help us get the Revit to Excel connection “buzzzzzing” nicely through Dynamo 🙂

It supports some nice things like writing to multiple sheets at once, offset to specific Cell entries, and writing to multiple locations in the same sheet. Most of this is accomplished through the BB Data node:

There is even some handy documentation already in place:
For specific instructions on how to use each one of the components and what is possible to achieve with each one of them you can refer to Bumblebee Primer: BB Primer

Read more at Konrad’s post:
bumblebee – dynamo and excel interop | archi-lab

We have been told that Dynamo core code can eventually support network sharing of custom node definitions. In the meantime, how can you share custom nodes between a few different pcs and laptops, keeping them all in sync?

There are a few ways to do this:

  1. Packages and package management
    The main issue here is that if you are working on IP related code or just generally don’t want to publish your nodes to the world, there will always be some left over ‘private’ custom nodes in your definitions folder that you still may want to sync with other pcs, leaving us with…
  2. Shared cloud definition folder with live update to local definitions folder

The second way can be done with FreeFileSync and its partner, RealTimeSync. RealTimeSync is automatically included when you install FreeFileSync. How do we set it up?

Let’s say we have a few workstations and we want to share Dynamo definitions between them:

  1. Set up a shared cloud folder called LiveDefinitions between users of these pcs (Google Drive or Dropbox or similar).
  2. Then, set up a sync process that mirrors that cloud version to your local Dynamo definitions folder, in my case:
    C:UsersLukeAppDataRoamingDynamo.8definitions

 It might look something like this:

 In the above example, I also set up a versioning folder to catch any conflicts.

The RealTimeSync can be set up as follows:

  1. Launch FreeFileSync and create a Mirror sync between these folders (that’s in the image above)
  2. Save this as a ffs_batch file
  3. Open that file in RealTimeSync
  4. Save as a ffs_real file
  5. Right-click and Copy this ffs_real file in Windows Explorer
  6. Paste shortcut into your Windows Startup folder, such as:
    C:UsersLukeAppDataRoamingMicrosoftWindowsStart MenuProgramsStartup
  7. Double click the shortcut in Startup and check that it runs ok. It should automatically place a red RealTimeSync icon in your task bar that polls the source folder periodically for changes. If you ever want to stop the sync, just right-click on that red icon to stop the sync running. To disable automatic startup, just delete the shortcut from the startup menu.

The final piece: make sure you save all of you custom definitions directly to the LiveDefinitions folder. In the example above, I should save all of my custom .dyf files to this folder after creating them:
C:UsersLukeGoogle DriveVirtualBuilt (LJ only)DynamowipLiveDefinitions
Even if I just right-click and edit a custom node in Dynamo, I will have to go Save As to the above folder to make this system work.

Google Drive will sync that file up, and then RealTimeSync will push it into the required Dynamo folder.

This way, the point of truth for all of your custom definitions is in the cloud, and these are downloaded and overwritten into your local Dynamo definitions folder (the one that Dynamo uses).

Use this idea with care 🙂 As always make a backup of everything first, and also remember that often simply closing and re-opening Dynamo can help to refresh the dependencies and correct some problems.

You can use HATCHGENERATEBOUNDARY in AutoCAD to recreate the boundary of a Filled Region that you exported to DWG.

You may be asking “why!” Well, if you have a bunch of Filled Regions and their sketch lines are all set to Invisible Lines, this may be one of the quickest ways to get a visible, printable outline of those filled regions in Revit

Here’s a quick video:

https://screencast.autodesk.com/main/details/6760f260-29f9-4690-890b-2516ac507f24