August 13, 2018

Revit: Design Options in Linked Revit Files Not Respected as Room Boundaries

I was trying to assist on a project in the office today (using Revit® 2018.3), when I ran into this issue, documented by Dave Baldacchino nearly six years ago. I set up a simplified set of files for experimental purposes; the images below demonstrate the problem remains an issue at least through 2018.3.

I created a "link" model, that has one Design Option Set (Exterior Walls) which in turn has two Design Options, Option 1 (primary) and Option 2. Each Design Option has one Wall object, running in the Project North-South direction (up and down on the screen). These are identical, with the exception that the Wall in Option 2 is offset 10 feet in the direction of Project West (left on the screen).

The link model is linked into a "host" model (origin to origin; both files were started with the same template file). In a floor plan view, four additional Walls were drawn, and two Rooms with Room Tags added. In the image below, the link model is showing Option 1 (primary). The link model is selected, and its type properties displayed to show that the link model is set to be room bounding. Interior Fill is turned on for the Rooms, to illustrate their extents.

No surprises there. But change the Visibility Graphics Overrides for the linked model to display Option 2, and the Wall moves 10'-0" to the left, as expected, but the Rooms stubbornly maintain their extents at the face of the Option 1 (primary) Wall location.

The workaround, to make the linked file not be room bounding, and to draw Room Separation lines in the host file, is not going to make anyone on that project team very happy.

August 10, 2018

Dynamo: Export Views and Sheets from Revit - Part 2

First post in this series [Part 1]

This post will cover the part of the graph that gets the list of Views and/or Sheets from a user-selected ViewSheetSet that are to be exported.
As noted in Part 1, the user has to create a View/Sheet Set in Revit® and add all of Views and/or Sheets to be exported to that set. The user enters the name of that set into a string node, labeled ViewSheetSet Name - String in the green-colored group labeled 2. Enter Name of Set to Export. Just above that, the Element Types node is set to the ViewSheetSet type, which is then fed to the All Elements of Type node to get a list of all of the ViewSheetSet objects in the active project. This list of ViewSheetSet objects is passed to the Element.Name node, which generates a list of the names (as strings) of those ViewSheetSets. This list is passed to the IndexOf node, along with the name that the user entered, to determine the index of that name on the list. Finally, the list of ViewSheetSets and the index of the desired ViewSheetSet are passed to the List.GetItemAtIndex node, to get that ViewSheetSet object.

During my initial testing, I passed the ViewSheetSet object to an Element.Parameters node, to see what information could be obtained from the object. The list of Views/Sheets included in that ViewSheetSet was not found there, so this node need not be included in the final graph. It turns out that there is not a node that ships with Dynamo that will generate a list of Views/Sheets that are included in a ViewSheet Set, and I was not able to find one in any of the third-party packages I have installed. I was able to find this thread in the Forum, in which Kulkul posted the Python code needed to extract a list of the Sheets/Views. My adaption of that, shown in the image below, is the code behind the Python Script 1 node, which takes the desired ViewSheetSet object as input and generates a list of the included Views and Sheets as output.

That list of Views and Sheets is then sent to several locations. During development, I added an Element.Name node and two Watch nodes to view the list. These do not need to be part of the final graph, but I left them in as a way to visually check that the correct ViewSheetSet was obtained.

In the next installment, I will cover the nodes that separate the list of Views/Sheets into separate lists of Views and Sheets. I wanted to do this so that I could include the Sheet Number value as part of the name of exported Sheets. Since Views do not have a Sheet Number property, they needed have the name of the exported drawing generated separately.

July 27, 2018

Revit: Sheet Ribbon Tool Inactive

This issue came up today, and I wanted to document the solution for future reference. A user was working on a model, in Revit 2018, and was trying to create a new Sheet. On the View ribbon tab, on the Sheet Composition panel, the Sheet tool was inactive.

She was working on a project that had Design Options, and one of the Design Options was set active. The solution was to use the Active Design Option selector on the Status Bar and set it to Main Model. You can only create new Sheets in the Main Model.

July 18, 2018

Revit: Multi-Line Viewport Titles on Sheets

I was asked about this today, and decided to record the solution in a blog post, for future reference. Viewport Titles in Revit® will wrap onto a second line when the length exceeds what will fit, based on the length of the label in the Title Family, but often the user wants control over where the wrapping occurs. If your office protocols allow for using the Title on Sheet property of a Viewport for the title that is shown on the Sheet (rather than using the View Name), then you can set a line break at the cursor location in the Title on Sheet property edit box in the Project Browser by pressing CTRL+ENTER.
And, no, there is no significance to the contents of the Drafting View that I used as my test case, shown in the image above. They are just some semi-random Detail Lines drawn so that there would be something to see when the Drafting View was placed on a Sheet.

July 10, 2018

Dynamo: Export Views and Sheets from Revit - Part 1

I had a request the other day to streamline the process of updating CAD Exports for an Autodesk Revit® project. Unfortunately, some team members are not working in Revit, so certain Views have to be exported to CAD on a regular basis for use as backgrounds for the non-Revit-using team members. After a bit of trial (and a little tribulation) along with an enormous amount of help from the generous souls who have posted sample code to the Community Forums at, I came up with the following Dynamo graph. All of the nodes used are "out-of-the-box" nodes available in the 1.3.2 version of Dynamo, but there are two Python Script nodes, the code for which is based on example code posted in the Community Forums. (As always, click on a image to see a full-size version of the image.)

The end user has to do three things prior to using the graph:
  • Create a View/Sheet Set into which all of the Views and/or Sheets to be exported are placed.
  • Get the name of the DWG Export Setup to be used for the export. (Create a new one if required by the project.)
  • Identify the folder (with full path) where the exports are to be sent.
With that information in hand, the user can make a project-specific copy of the Dynamo file, enter those three items in the appropriate nodes, save the file, and then run it whenever updated exports are needed. Dynamo will overwrite any files of the same name in the target folder, so previous versions need to be archived elsewhere if a record of all exports is required. In the next few posts, I will go through the various sections of the graph, and, to the best of my ability, explain how each works, including the two Python Script nodes that do the heavy lifting. Before doing so, I would like to thank the following Community Forum contributors whose helpful responses to others' questions also helped me to complete this project.
  • Konrad K Sobon, for the code in the Python Script 2 node that does the exporting, as well as for the advice given to Andrea_Ghensi in the same thread regarding code to have a specific DWG Export Setup used for the export. See the full thread here.
  • Andrea_Ghensi, for the code in the Python Script 2 node that allows the user to specify an existing DWG Export Setup for the export (as amended by Konran K Sobon). See the same thread as the previous link.
  • 4bimfercesp, for the line in the code in the Python Script 2 node that allows the user to specify whether Views on a Sheet should be merged into the exported sheet or exported as a separate file that is externally referenced into the exported Sheet file. See the full thread here.
  • Kukul, for the code in the Python Script 1 node that extracts a list of the Views/Sheets in a View/Sheet Set. See the full thread here.
The nodes at the left side of the graph that are in green-colored groups are the nodes that require user input. I will conclude this first post with one of the simpler parts of the graph, the Folder for Exported DWGs - Directory Path node.
This is an instance of the out-of-the-box Directory Path node, with a modified node title. The Browse button allows the user to navigate to the folder where the exported drawings are to be placed. The output of this node is fed to the IN[0] input of the Python Script 2 node. One thing to note about this node, and the other user input nodes, is that if you right click on the node, you will see that the Is Input item on the context menu is checked. That means that this node will be available for user input in Dyanmo Player.

I am not certain how many clicks using this graph will save over manually doing the same export (probably a few on subsequent exports if Dynamo Player is used, without making any changes to the inputs), but it certainly will help make the process more consistent.

Next post in this series [Part 2]

May 21, 2018

Autodesk Product Update Site Maintenance

If you were planning to do some software updates this coming weekend (Memorial Day weekend in the United States), get your download early, as the product update section of the Autodesk Account site will be down from 8:00 pm on Friday, May 25, 2018 through 2:59 am on Monday, May 28, 2018. (Those times are US Eastern Daylight Savings time, to the best of my knowledge.) Check out the banner notification at the top of the Autodesk Account Management page for the times in your zone.

April 23, 2018

Return of the Educational Watermark in AutoCAD 2019 and 2019 Vertical Products

The educational watermark has returned in the 2019 versions of AutoCAD® and AutoCAD-based vertical products, like AutoCAD® Architecture and AutoCAD®MEP. More details on the 2019 implementation of the educational watermark can be found in this Autodesk Knowledge Network article.

March 22, 2018

Say Goodbye... AutoCAD® Architecture and AutoCAD® MEP, and say hello to Only One. AutoCAD. with toolsets in the 2019 release. The familiar tools in AutoCAD Architecture and AutoCAD MEP will still be available, as toolsets that can be installed for use in AutoCAD. Most of the other vertical products built on AutoCAD® will also become toolsets.

Current subscribers to a vertical product have the option to stay with the vertical product or migrate to the new offering. Current permanent licenses with active maintenance will only have access to the vertical product, when it is released, but will have the option to move to subscription (and the Only One. AutoCAD. offering) when the maintenance contract is up for renewal. More details on this and other related issues can be found in the Only One AutoCAD FAQ.

March 14, 2018

Civil 3D 2018 to ACA 2013

We have started to get drawings from Civil consultants in the 2018 file format. Thanks to our recent move to the AEC Collection, we now have access to AutoCAD® Civil 3D®. I have no idea how to use that program, beyond the AutoCAD basics, but I installed the 2018 version of it in the hope that I would be able to export the received drawing to "vanilla" AutoCAD®. Similar to AutoCAD® Architecture and AutoCAD® MEP, you can go to the Application Menu > Export > Export Civil 3D Drawing to export a drawing. There is a dialog, where you can choose between AutoCAD DWG and Microstation® DGN, and, for DWG export, the Export Settings allow you to select a file format, such as 2013.

I did all of that, and Civil 3D did its thing, and drawings were generated. (I got more than one because I left the Include sheets toggle checked, so a drawing for each layout was also generated.) I fired up AutoCAD Architecture 2016 and opened the exported "Model" file, only to be greeted by this dialog:
What?! I just exported this file to a previous file format - there should not be ANY AEC objects, let alone future ones. I closed the dialog and tried run the WALLADD command. No dice - "Command not allowed because drawing contains objects from a newer version of this application." appeared at the command line. So this drawing, supposedly exported to the previous file format, can be opened, but is otherwise mostly useless. You can externally reference the file and use AEC commands in the host file, saving it from being totally useless.

Still, I expected to have a "clean" 2013-format file that only has non-AEC AutoCAD objects. I tried a Window selection in Model Space to get all the visible objects and then tried to copy them to the clipboard, hoping that if I pasted them in a new file, the future AEC Objects would not come along for the ride. That did not work, as the copy to clipboard failed.
Then I tried to select the Model Space objects and use the WBLOCK command, again hoping that the future AEC Objects would be left behind. That also failed.
Finally, I opened the file in AutoCAD Architecture 2018 and tried to use the AECEXPORTTOAUTOCAD2013 command, in the somewhat desperate hope that might work. I got the following dialog indicating that an error had occurred during the save.
And then this dialog showed up, to rub salt into the wound. I tried "saving" as AutoCAD-only objects!
This was followed by a second showing of the warning dialog recommending the use of the RECOVER command. Opening this file in AutoCAD Architecture 2016 resulted in the same Open Drawing - New Versions of Objects in Drawing dialog as shown in the first image above.

Finally, I tried starting a new drawing and using the INSERT command to insert the originally exported "Model" drawing file. I received the following dialog:
The small-print statement "Newer AEC objects will be disallowed from participating in this operation" gave me hope, as it was not flat-out refusing to do the insertion, and I did not want the newer objects in the file. That hope was confirmed, as it did insert what appeared to be all of the objects that were visible in the exported file, and I was able to add AEC objects to the file. Upon saving and reopening, there were no dialogs chastising me for having a file with future AEC Objects in it. Success! I still think that the original export should have been AEC-object-free, and object to having to go to the extra step of inserting the exported file into an empty file to get rid of the future objects, but at least I have a workaround for providing a "clean" file in the 2013 format that does not require proxy objects or object enablers.

February 19, 2018

Revit: "Mystery" Names on the Room Name Drop-Down List

Like other text parameters in Revit, as you add Rooms to your project and provide values to the Name parameter, a list of used values is generated and made available for selecting the Name of a newly added Room. This can speed the naming of Rooms, when you have multiple Rooms with the same Name, and also makes it easier to be consistent in how you name them.

So today, I was the only design technology helpdesk staffer, and a question came in regarding the fact that in the project on which this person was working, there was a long list of room names from which to choose, that were NOT Rooms in that project. The problem was there were so many of these "mystery" names that it was slowing down the process of finding the desired name on the list, and the person wanted to be able to delete the ones that did not apply. I opened the project file and set up Room Schedules for each phase in the project, hoping to find that there were unplaced Rooms in one or more of the Phases that were generating these names. This turned out to not be the case.

Perplexed, I created a new project from our template, and found that those same names were on the list there, as well. I searched the help and the internet, trying to figure out what the source of these names was, to no avail. Then it occurred to me that there could be a Color Scheme in the project that was defining these names. I opened the Edit Color Scheme dialog (on the ribbon: Architecture > Room & Area panel flyout > Color Schemes), set the Category to Rooms and found a number of Color Schemes in our template file. Most were based on the Department parameter, but one was based on the Name parameter, and it was the source of the "mystery" names on the Room Name list.