November 30, 2013

ACA: Offset External References, Location Properties and Schedule Tags

If you have ever externally referenced several files into one host file, and had Schedule Tags placed within the externally referenced files that displayed property values that were from or based on Location properties, you may have found that in the host file, the Schedule Tags did not display the expected values. One common example would be the use of a Door Tag that displays an ID value for the Door that is based in part on the associated room number, with the room number value being brought into the Door's properties via a Location property.

Depending upon what version you are using and how you place the external references, you may find that the values displayed in the tags all display values from the Spaces of one of the external references, or that you get *Space not found* in lieu of the Space-based property value that the Location property is supposed to be reading and which shows as expected when the externally referenced file is opened directly.

Things worked as expected in ACA 2009 and earlier, but some change made in the 2010 release affected the way that Location-property-dependent values are displayed in tags nested (placed) in the files that are externally referenced. All of the examples shown in this article are done outside of the Drawing Management feature (Project Browser and Project Navigator). Because managing property data overrides is difficult outside of the Drawing Management feature, tags referencing object-based properties are usually placed directly in the file that holds the object being tagged. (My firm does it this way, and from recent posts in the Discussion Groups, it appears that others do as well.) Note also that a Schedule Table placed in the host file that is set to scan external references and which uses the external references for the selection set and applies to the same objects that are tagged by the nested Schedule Tags will display the expected values in all of the releases from 2010 through 2014; the issue is only with the values displayed by nested Schedule Tags. In all releases since 2010, it appears that nested Schedule Tags do not look for a Space from the effective location of the nested Location grip in the host file, but instead take the relative X- and Y-distances from the insertion point of the external reference to the Location grip, and then apply that X, Y coordinate relative to 0,0 in the host file and look there for a Space (or, if your Location references a property attached to an AEC Polygon, for an AEC Polygon). If it finds a Space, it reads the specified property from that Space. That works fine for one external reference, inserted at 0,0. But in a file where you are inserting several external references, you will likely not place all of the files at 0,0,0, since then it would be up to ACA to determine which of what would likely be several overlapping Spaces would be used. Assuming that each floor of the floors is above or below the others (and that they share a common 0,0 point), all of the floors would be reading values from the Spaces in the floor placed at 0,0,0.

The logical solution would be to not place any of the external references in the host file at 0,0,0 and to place then such that the building footprint relative to 0,0,0 is left open in the host file. Unfortunately, in the 2010 and 2011 releases, that results in the tags displaying *Space not found* in lieu of the expected Space-based property value. I apologize to anyone still using the 2012 release, as I do not have access to an installed version of that release, so I am not certain how that release behaves. In the 2013 and 2014 releases, a partial adjustment was made, and the tags will display the value they display directly in the external reference file, provided that there is no Space at the "mapped" location relative to 0,0 in the host file.

I have posted some sample files, in the Door tag incorrectl​y finding informatio​n from other floors thread in the Autodesk AutoCAD® Architecture General Discussion Group, based on the "Room" shown in the image above, so that you can see the effects firsthand. There are three "floor" files, for the First, Second and Third floors, and a "sheet" file into which the three floor files are externally referenced. Each floor file has a single Space onto which two doors open. The files include a modified version of out-of-the-box DoorObjects Property Set Definition, in which two new properties have been added: RoomNumberNonProjectBased is a Location property, referencing the SpaceObjects:Number property attached to the Space; NumberRoomBased is a Formula property that concatenates the RoomNumberNonProjectBased property, a period (".") and the NumberSuffix property. The left-side doors have a NumberSuffix value of "1"; the right-side doors have a value of "2". The sheet file has a modified version of the out-of-the-box Door Schedule, with the MARK column deleted and replaced by a DOOR ID column, displaying the value of the NumberRoomBased property. The Doors are tagged in each floor file with a custom Schedule Tag that also references the NumberRoomBased property. The files were created in ACA 2010, so that they can be opened in that release or any later release.

The image below is of the sheet file, opened in 2010. None of the externally referenced floor files is inserted at 0,0, and there are no Spaces below the "mapped" location of the Location grips of the Doors.
Notice that the DOOR ID column in the schedule table correctly shows the values on all three floors, yet, as shown in the enlargement of the Second Floor external reference, the Schedule Tags inside the plan external references, which tag the doors, show *SPACE NOT FOUND* instead of the room number.

If the First Floor external reference is moved so that its insertion point is at 0,0,0 and the model is regenerated, then the nested Schedule Tags on the Doors on all three external references read the room number from the First Floor external reference. The Schedule Table continues to show the correct values, as seen in the image below.

If the First Floor external reference is moved back to its previous location, away from 0,0,0, and two Spaces (ROOM 5555 and ROOM 6666) are drawn in the host file, one at each mapped location and the model is regenerated, then the nested Schedule Tags on the Doors on all three external references will read the corresponding room numbers (5555 and 6666), but the Schedule Table will show the correct values, as shown in the image below.

Opening the same files in 2013 or 2014 will give the same results, with the exception of the first sheet view image above, where instead of *SPACE NOT FOUND*, the desired room numbers will be displayed on all three floor plans, because there is no Space in the "mapped" location.

November 27, 2013

November 18, 2013

Help! If only....

This is just a quick vent post on my increasing frustration with the Help that is currently available in AutoCAD® Architecture. I appreciate that moving the online Help "online" (internet-based) allows them to update the content, and that the vehicle for doing so would not necessarily be the same as it was back in the 2010 release, when the "online Help" files were locally installed. But it seems with each release, they take away another feature and make it that much harder to actually use the Help.

My personal peeve is the removal of the Contents tab. The old search function may not have always gotten me to the page I wanted, but more often than not it got me close, and I could then pop over to the Contents tab and look in the general vicinity of the "close" page and usually find what I needed. In its current incarnation, the Help is all but totally dependent upon the Search feature, as the only other options are a few general links on the home page (thank goodness they put a link to the system variables back on that page) and the Favorites, where you can save a page once you finally find it. If the new search was all that and then some, perhaps I would not be so frustrated. Here is an example of why I am frustrated:

I was trying to get up to speed on object transparency, and I had become aware that when plotting, transparency is turned off, by default, for performance reasons. I could see the toggle to enable transparency in the plot dialog, but I wanted to know more about it, and whether there was a System Variable that could also control that setting. So I did a search for PLOT TRANSPARENCY filtered for User information, and the second hit was the Plot Dialog Box article in the Help, which I selected and scrolled down to the section on Plot Options, which had the description of the Plot Transparency toggle.
As I suspected, there was a System Variable, and I wanted to know more about it. Unfortunately, the PLOTTRANSPARENCYOVERRIDE text in the Help was not a hyperlink. "No problem," I thought, "my current search is for PLOT TRANSPARENCY, surely PLOTTRANSPARENCYOVERRIDE must be in the search results." So I scrolled down the first page of results and did not find it. I went to the second and third pages and came up empty there, too. (For the record, it was there, the twentieth item on page five. I typed two thirds of the title of that article as my search criteria. How could it possibly be the 120th result?)

After scrolling through the third page, I grew weary and decided to take advantage of the fact that I already knew the name of the System Variable. Perhaps the problem was that I had typed a space between "PLOT" and "TRANSPARENCY". I removed that space and redid the search, only to find that PLOTTRANSPARENCY generated no results.
The Help did kindly offer an alternate search term, which I gamely tried (even though it introduced extraneous text). I was very disappointed to find that there were no search results for plottransparenz, either. Why offer an alternate search term if there are no results for it?

Finally, I did what I apparently should have done before even looking through the current search results, and changed the search string to PLOTTRANSPARENCYOVERRIDE. Searching on the entire name resulted in a much-reduced list of hits and put the one I wanted right at the top. All well and fine, since I already knew the name of the System Variable, but what about times when I half-remember part of the name? Why is the search limited to whole words?

After the fact, I did discover one somewhat hidden gem in the current Help. If you select the tool with the funnel icon to the right of the user type drop down, you have the opportunity to filter the search results to just Commands, just System Variables or just Commands and System Variables. Had I done this on my original search terms of PLOT TRANSPARENCY, the article I wanted would have been the first search result and I would have been somewhat less frustrated. The filter does not resolve the issue where partial System Variable or Command names do not generate any results (unless that part exists as a free-standing "word" somewhere in the text). But it will save me from having to scroll through five pages of results to find something that should have been on page one from the start.

Note that unchecking the "Include Autodesk Web Results" toggle only removed four items from my original search, and the PLOTTRANSPARENCYOVERRIDE page was still on the fifth search results page, moving all the way up to number 118.