Finally had some time to start preparing for the creation of a deployment for AutoCAD Architecture 2022. This is the first deployment for an AutoCAD-based product that I will be creating on the new, web-based system, as we typically only deploy every other year. I worked my way through the limited options under Customizations and came to the last section, Custom Profile. We have multiple custom profiles, one for each discipline, and did not try to include those in the deployment previously. I wanted to see if more than one could be added. I exported profiles to two test ARG files, and added one of them, then tried to add the other.
I quickly found that you can only add one; attempting to add another replaces the first one with the second one. All well and fine; all of the text related to custom profile is singular. What prompted this blog post, as a note to my future self, is the fact that there does not appear to be a way to remove a custom profile once you add one. So it looks like I will be trashing what I have done so far and starting over.
Showing posts with label ACA. Show all posts
Showing posts with label ACA. Show all posts
April 05, 2022
March 22, 2021
ACA: Using AutoLISP to Change the Swing of all Swinging Doors
There was a request to change the "swing angle" of all of the Doors in a file to 30 degrees. Building on code I previously wrote for changing the heights of Doors a given style, I put together a command function in AutoLISP that does that. One thing to know before embarking on this particular task is that while all of the 20 built-in Door Types appear to have a SwingAngle property (I did not check all 20, so do not hold me to that), only five of those types (Single, Double, Double Opposing, Uneven and Uneven Opposing) will accept a change to that property; the other 15 types will throw an error and crash the routine. There are four additional types (Single-Dhung, Double-Dhung, Uneven-Dhung and Communicating) that are in fact swinging Doors, but for some reason were not included when the SwingAngle property was introduced. (See comments at the end of the article for more on that.) The "swing" of these types can be changed using the OpenPercent property; a value of 16 approximates 30 degrees. No change is made to the other 11 types of Doors.
The following code defines a command called DRSW that will change the "swing" of Doors of one of the nine types previously mentioned to 30 degrees/16 percent. That amount is hard-coded, on the assumption that this would be part of a larger automation task meant to run unattended (or that you always wanted the same degree/percent values). Collecting user input would be easy enough to add at the beginning if you want to specify the angle/percent each time you run the program.
Originally, all Door Types controlled how open they appeared using the Opening percent property on the Properties palette (or its prior equivalent). 100% open for a swinging door meant a 180-degree swing. So a 90-degree swing would be 50%. Some users complained that may make sense to a programmer, but they thought of door swings in terms of degrees, not percentages. So at some point (I do not recall which release), a SwingAngle property was added to Door objects, and, for the five Door types noted above, Swing angle replaced Opening percent on the Properties palette. For those five Door types, the two values are linked - change one and the other changes, too. (That is how I determined that 16% was the right value for 30 degrees - that is the value for OpenPercent that the program shows when the SwingAngle is set to 30.) I have no idea why the three Dhung and the Communicating Door Types were omitted from the change to SwingAngle. Perhaps the original complainants rarely, if ever, used those types and so they were not in the original request. Or maybe the way things were set up in the program, it was easy to make the change for the five types that were changed, but not for the other four. Whatever the reason, things are the way they are, and the code above accommodates that.
The following code defines a command called DRSW that will change the "swing" of Doors of one of the nine types previously mentioned to 30 degrees/16 percent. That amount is hard-coded, on the assumption that this would be part of a larger automation task meant to run unattended (or that you always wanted the same degree/percent values). Collecting user input would be easy enough to add at the beginning if you want to specify the angle/percent each time you run the program.
(defun C:DRSW ( ; No arguments.
/
iCount ; Loop counter [integer].
iDType ; Door Type [integer].
iMax ; Total number of Doors in file [integer].
iProc ; Number of Doors processed [integer].
objDoor ; Door object being processed.
objDStyle ; Door Style of the object being processed.
ss1 ; All Doors in the file [selection set].
) ;_ End arguments and local variables.
(vl-load-com)
(setq ss1 (ssget "_X" '((0 . "AEC_DOOR"))))
(cond
((not ss1) ; No Doors in drawing.
(alert "Drawing file has no Door objects.\nNothing to do!")
) ;_ End condition A1.
(T ; Else, continue.
(setq iMax (sslength ss1)
iCount 0
iProc 0
) ;_ End setq.
(while (< iCount iMax)
(setq objDoor (vlax-ename->vla-object (ssname ss1 iCount))
objDStyle (vlax-get-property objDoor 'Style)
iDType (vlax-get-property objDStyle 'Type)
) ;_ End setq.
(if (or
(= iDType 1) ; Single.
(= iDType 2) ; Double.
(= iDType 5) ; Double Opposing.
(= iDType 6) ; Uneven.
(= iDType 8) ; Uneven Opposing.
) ;_ End or.
(progn
(vlax-put-property objDoor 'SwingAngle 30)
(setq iProc (1+ iProc))
) ;_ End progn.
(if (or
(= iDType 3) ; Single-Dhung.
(= iDType 4) ; Double-Dhung.
(= iDType 7) ; Uneven-Dhung.
(= iDType 20) ; Communicating.
) ;_ End or.
(progn
(vlax-put-property objDoor 'OpenPercent 16)
(setq iProc (1+ iProc))
) ;_ End progn.
) ;_ End if.
) ;_ End if.
(setq iCount (1+ iCount))
) ;_ End while.
) ;_ End condition A2.
) ;_ End cond A.
(prompt
(strcat
"\nDRSW function completed: "
(itoa iProc)
" Door(s) of "
(itoa iCount)
" total Door(s) processed. "
) ;_ End strcat.
) ;_ End prompt.
(prin1)
) ;_ End C:DRSW.
Originally, all Door Types controlled how open they appeared using the Opening percent property on the Properties palette (or its prior equivalent). 100% open for a swinging door meant a 180-degree swing. So a 90-degree swing would be 50%. Some users complained that may make sense to a programmer, but they thought of door swings in terms of degrees, not percentages. So at some point (I do not recall which release), a SwingAngle property was added to Door objects, and, for the five Door types noted above, Swing angle replaced Opening percent on the Properties palette. For those five Door types, the two values are linked - change one and the other changes, too. (That is how I determined that 16% was the right value for 30 degrees - that is the value for OpenPercent that the program shows when the SwingAngle is set to 30.) I have no idea why the three Dhung and the Communicating Door Types were omitted from the change to SwingAngle. Perhaps the original complainants rarely, if ever, used those types and so they were not in the original request. Or maybe the way things were set up in the program, it was easy to make the change for the five types that were changed, but not for the other four. Whatever the reason, things are the way they are, and the code above accommodates that.
September 11, 2019
ACA: Rotation Property for Multi-View Blocks
Robin Capper made the observation in a post to the AutoCAD Architecture Forum that Multi-View Block References do not have an automatic property for Rotation, unlike Block References or MInsert Blocks. I was surprised to see that was true, but figured that a Formula Property would be able to get the value, if it is exposed.
A quick check using the "vlax" functions in AutoLISP verified that the Rotation property is exposed in the API. I have gotten a little rusty on the specifics of accessing data from the drawing in a Formula Property, but after a few searches of this blog, I had enough to refresh my memory and come up with this as the formula for a Formula Property in a Property Set Definition that applies to Multi-View Block References:
Before you create the Formula Property, add an instance of the ObjectID automatic property to the same Property Set Definition. In the formula, [ObjectID] needs to be a reference to that property, created by double clicking on the property in the Insert Property Definitions area of the Formula Property Definition dialog. You cannot just type [ObjectID] in the formula. When the reference is added, it will have a light gray background.
The angle value obtained from the Multi-View Block Reference object is in radians; I chose to convert that value to degrees. If radians will suit your needs better, you can delete the first line and, in the RESULT line, delete * 180.0 / pi. After posting my reply, I came across a better way to generate the value for pi:
A quick check using the "vlax" functions in AutoLISP verified that the Rotation property is exposed in the API. I have gotten a little rusty on the specifics of accessing data from the drawing in a Formula Property, but after a few searches of this blog, I had enough to refresh my memory and come up with this as the formula for a Formula Property in a Property Set Definition that applies to Multi-View Block References:
pi = 3.141592653589793238462643383
Set acadApp = GetObject(,"AutoCAD.Application")
Set mvbObj = acadApp.ActiveDocument.ObjectIDToObject( [ObjectID] )
RESULT = CDbl(mvbObj.Rotation * 180.0 / pi)
Before you create the Formula Property, add an instance of the ObjectID automatic property to the same Property Set Definition. In the formula, [ObjectID] needs to be a reference to that property, created by double clicking on the property in the Insert Property Definitions area of the Formula Property Definition dialog. You cannot just type [ObjectID] in the formula. When the reference is added, it will have a light gray background.
The angle value obtained from the Multi-View Block Reference object is in radians; I chose to convert that value to degrees. If radians will suit your needs better, you can delete the first line and, in the RESULT line, delete * 180.0 / pi. After posting my reply, I came across a better way to generate the value for pi:
pi = 4 * Atn( 1.0 )
August 01, 2019
ACA: Got Blips?
Many younger users may have never seen "BLIPS" and many older users have probably forgotten about them. The BLIPMODE command and System Variable have been undefined in AutoCAD® and its verticals since the 2012 release. Back in the day, if BLIPMODE was turned on, every pick would be memorialized on screen with a small, white "+" mark. ZOOMing, PANning or using the REDRAW (yes, that command did have a function once) or REGEN commands would clear these temporary markers from the screen. But if you worked for a while without needing to change your view, you could accumulate a lot of these (and would probably quickly turn BLIPMODE off).
Undefined is not the same as removed, however, and the command is still there, and the System Variable can be accessed via AutoLISP. The System Variable was (is) stored in the Windows Registry, not in the drawing file, so someone could change the setting in the registry, as well. If you find yourself working in a drawing and having blips show up with each left mouse click, even if you remember "BLIPMODE," you will find that neither the command nor the System Variable is "known" by recent versions.
What to do? At the command line, type in the command with a period at the front: .BLIPMODE. The period tells AutoCAD to use the original definition of the command, and suddenly AutoCAD recoginzes it.
Press the ENTER key, and then choose OFF from the command line options.
Or, if there is someone in your office who is overdue for a (mostly) harmless prank, wait for her/him to leave her/his workstation with AutoCAD open. Start a new drawing, type .BLIPMODE, press ENTER and choose ON. Close the new drawing without saving. Discretely slip away, and await your colleague's return, and eventual annoyance. You may want to pop in and offer to fix the issue, before things escalate to an HR-level event. [Use at your own risk.]
Undefined is not the same as removed, however, and the command is still there, and the System Variable can be accessed via AutoLISP. The System Variable was (is) stored in the Windows Registry, not in the drawing file, so someone could change the setting in the registry, as well. If you find yourself working in a drawing and having blips show up with each left mouse click, even if you remember "BLIPMODE," you will find that neither the command nor the System Variable is "known" by recent versions.
What to do? At the command line, type in the command with a period at the front: .BLIPMODE. The period tells AutoCAD to use the original definition of the command, and suddenly AutoCAD recoginzes it.
Press the ENTER key, and then choose OFF from the command line options.
Or, if there is someone in your office who is overdue for a (mostly) harmless prank, wait for her/him to leave her/his workstation with AutoCAD open. Start a new drawing, type .BLIPMODE, press ENTER and choose ON. Close the new drawing without saving. Discretely slip away, and await your colleague's return, and eventual annoyance. You may want to pop in and offer to fix the issue, before things escalate to an HR-level event. [Use at your own risk.]
May 08, 2019
ACA: ExportToAutoCAD - Room Tag Attributes Not Shown
I came across something curious today. Someone wanted to link an AutoCAD® Architecture drawing in Revit, but the Room Tags were not showing. That is because Revit cannot read AEC Objects (not the curious thing). I suggested using one of the EXPORTTOAUTOCAD commands to create a copy of the file, with all of the AEC Objects exploded to AutoCAD linework. That was done, but in the resulting file, the blocks that were the result of exploding the Room Tags were not showing any of the attributes that should have been displaying the room name and number.
Here is the curious part: Grips for the "missing" attributes displayed, and, in the Properties palette, values for the room name and number attributes were shown.
I tried REGENerating the drawing, I checked layers 0 and Defpoints to verify they were on and thawed and even tried an OBJRELUPDATE (even though the object was now an AutoCAD block, and not an AutoCAD Architecture Multi-View Block). I inserted a new instance of the block, and values entered into the room name and room number attributes displayed as expected. Fortunately, lunch intervened, allowing my frustration to subside. With a semi-fresh brain, I returned to the issue after lunch, and it occurred to me to try running ATTSYNC on the block. And that turned out to be the solution, as the values displayed after doing so.
I was not able to reproduce this in a sample file, created with the same content, but at least I have a solution should I come across this again in the future.
Here is the curious part: Grips for the "missing" attributes displayed, and, in the Properties palette, values for the room name and number attributes were shown.
I tried REGENerating the drawing, I checked layers 0 and Defpoints to verify they were on and thawed and even tried an OBJRELUPDATE (even though the object was now an AutoCAD block, and not an AutoCAD Architecture Multi-View Block). I inserted a new instance of the block, and values entered into the room name and room number attributes displayed as expected. Fortunately, lunch intervened, allowing my frustration to subside. With a semi-fresh brain, I returned to the issue after lunch, and it occurred to me to try running ATTSYNC on the block. And that turned out to be the solution, as the values displayed after doing so.
I was not able to reproduce this in a sample file, created with the same content, but at least I have a solution should I come across this again in the future.
March 14, 2019
ACA: Suppress Multiple Objects Contextual Ribbon Tab
Someone in my office today asked if the Multiple Objects contextual ribbon tab could be suppressed. That is the tab that displays when you select items of different object types.
The individual did not want to have to go back to the tab that was previously active where the tool to be used resided. I recalled that some years back, there were controls that would allow you to not have the ribbon focus shift to the contextual ribbon tab (it would activate, but not become the current tab), to have it show on a single-click or to have it show on a double-click. Those choices are no longer available.
What remains is the ability to set the maximum number of objects for which a contextual ribbon will display (RIBBONCONTEXTSELLIM System Variable). The allowable range is 0 to 32767, with an initial default value of 2500. The purpose of this is to limit performance issues when trying to act on a large number of objects. When the number of objects selected exceeds the current value of RIBBONCONTEXTSELLIM, then a contextual ribbon tab will not display, and any ribbon property controls will be disabled (grayed out). Setting the value to 0 allows an unlimited number of objects to be selected and still get a contextual ribbon tab, so this cannot be used to turn off contextual ribbon tabs. But setting it to 1 will allow contextual ribbon tabs to display when just one object is selected (which most would find desirable, particularly for AutoCAD® Architecture and AutoCAD® MEP objects), but disable it when more than one object is selected. This effectively suppresses the display of the Multiple Objects contextual ribbon tab, but does also suppress all other contextual ribbon tabs when multiple objects are selected. For example, if you select two or more Walls, the Wall contextual ribbon tab will not display.
In addition to typing RIBBONCONTEXTSELLIM at the command prompt, pressing the ENTER key and then typing 1 and pressing the ENTER key, you can also set this value in the Options dialog, on the Selection tab, in the Ribbon options area by selecting the Contextual Tab States button and then editing the value in the Object selection maximum for contextual tab display edit box.
This value is stored in the User Settings (registry) for a given AutoCAD Profile, so setting it once will apply to all drawings you open.
I personally leave the setting at the default 2500, but if you often select multiple objects of different types with the intent to select a tool on the ribbon that is not on the Multiple Objects ribbon tab and want to avoid having to perform an extra click to get back to where you previously were in the ribbon, then setting RIBBONCONTEXTSELLIM to 1 may improve your workflow.
What remains is the ability to set the maximum number of objects for which a contextual ribbon will display (RIBBONCONTEXTSELLIM System Variable). The allowable range is 0 to 32767, with an initial default value of 2500. The purpose of this is to limit performance issues when trying to act on a large number of objects. When the number of objects selected exceeds the current value of RIBBONCONTEXTSELLIM, then a contextual ribbon tab will not display, and any ribbon property controls will be disabled (grayed out). Setting the value to 0 allows an unlimited number of objects to be selected and still get a contextual ribbon tab, so this cannot be used to turn off contextual ribbon tabs. But setting it to 1 will allow contextual ribbon tabs to display when just one object is selected (which most would find desirable, particularly for AutoCAD® Architecture and AutoCAD® MEP objects), but disable it when more than one object is selected. This effectively suppresses the display of the Multiple Objects contextual ribbon tab, but does also suppress all other contextual ribbon tabs when multiple objects are selected. For example, if you select two or more Walls, the Wall contextual ribbon tab will not display.
In addition to typing RIBBONCONTEXTSELLIM at the command prompt, pressing the ENTER key and then typing 1 and pressing the ENTER key, you can also set this value in the Options dialog, on the Selection tab, in the Ribbon options area by selecting the Contextual Tab States button and then editing the value in the Object selection maximum for contextual tab display edit box.
This value is stored in the User Settings (registry) for a given AutoCAD Profile, so setting it once will apply to all drawings you open.
I personally leave the setting at the default 2500, but if you often select multiple objects of different types with the intent to select a tool on the ribbon that is not on the Multiple Objects ribbon tab and want to avoid having to perform an extra click to get back to where you previously were in the ribbon, then setting RIBBONCONTEXTSELLIM to 1 may improve your workflow.
Labels:
ACA,
Multiple Objects Contextual Tab,
Ribbon
February 28, 2019
ACA: Custom Display Block for Door in Plan View
You may have noticed that even after assigning a custom Profile to a Door to add a glazed panel to the Door, that there is no change to the graphics when viewing the Door in "plan" (Top view direction) in any of the out-of-the-box Display Representation Sets, That is because these use one of the "plan" Display Representations for Doors (Plan, Plan High Detail, Plan Low Detail, Plan Screened, Reflected or Reflected Screened), and the Panel component in these is 2D graphics representing the panel width and depth (overall Door width only, in Plan Low Detail) that is not tied to the 3D representation where the glazing is shown.
In my work, I have never needed to indicate glazing in a Door Panel at the typical scales used for plan views (1/16" = 1'-0" to 1/4" = 1'-0"). But if you do have a need for that, you can use a custom display block to add graphics to represent a glazed panel in plan views.
Before we dive into creating the block and assigning it to the Door Style, you need to understand the limitations of custom display blocks in plan Display Representations. The only component to which you can assign a custom display block in plan is the Frame component. You cannot assign one to the Panel component. That means you cannot scale the block by the thickness of the Panel, nor will the block rotate to match the swing angle of the Panel. If you use multiple swing angles for your Panels, you will need multiple display blocks and multiple Door Styles (one of each for each angle). For a 90-degree Panel swing angle (the one we typically use for new construction Doors), scaling the custom display block by the Width, even with the Frame Component set to Inside, will not scale the block along the width of the Panel, but perpendicular to the width of the panel (because ACA thinks it is a Frame component). All of this means that if the graphics in the file need to be accurately shown, and not just a "symbol", you will need a separate custom block and a separate Door Style for each Door width.
If all of that did not change your mind about showing a glazed panel in plan views for Doors, here is how to do it.
In my work, I have never needed to indicate glazing in a Door Panel at the typical scales used for plan views (1/16" = 1'-0" to 1/4" = 1'-0"). But if you do have a need for that, you can use a custom display block to add graphics to represent a glazed panel in plan views.
Before we dive into creating the block and assigning it to the Door Style, you need to understand the limitations of custom display blocks in plan Display Representations. The only component to which you can assign a custom display block in plan is the Frame component. You cannot assign one to the Panel component. That means you cannot scale the block by the thickness of the Panel, nor will the block rotate to match the swing angle of the Panel. If you use multiple swing angles for your Panels, you will need multiple display blocks and multiple Door Styles (one of each for each angle). For a 90-degree Panel swing angle (the one we typically use for new construction Doors), scaling the custom display block by the Width, even with the Frame Component set to Inside, will not scale the block along the width of the Panel, but perpendicular to the width of the panel (because ACA thinks it is a Frame component). All of this means that if the graphics in the file need to be accurately shown, and not just a "symbol", you will need a separate custom block and a separate Door Style for each Door width.
If all of that did not change your mind about showing a glazed panel in plan views for Doors, here is how to do it.
- Identify the Door Style that is to receive the custom display block. For this example, I have a style called Wood Door with Glazing that has a custom Profile assigned as the Shape on the Design Rules tab of the Door Style. That creates a glazed panel in a model view, but has no effect on the plan view graphics, as seen in the image below.
- Verify that the target Display Representation for Doors is active in the current Display Configuration. In this example, the custom display block will be attached to the Plan Display Representation for Doors, and that is active in my current Display Configuation.
- Place an instance of the Door in the drawing, and set the Width property of the Door to the width intended for the display block. Having an instance in the drawing is helpful for seeing the effects of the editing so far, and, in cases like this where no scaling will be applied to the block, can be used when generating the linework for the block definition.
- Determine where the insertion point of the custom display block will be. In this case, the hinge-side corner of the frame (where it meets the corner of the Door Panel) is an appropriate insertion point.
- Draw the linework for the custom display block. If you want to be able to control the display of the linework in the display properties of the Door Style, draw the linework on Layer 0, and assign ByBlock to the Color, Linetype, Plot Style (if using named plot styles), Lineweight and Transparency properties of the linework. In this example, the linework consists of two lines perpendicular to the width of the Door Panel, set in 10" from each end of the Door Panel, and a third line connecting the midpoints of the first two lines, to give a symbolic representation of the glass panel in the Door.
- Create the block definition from the linework, being careful to specify the desired insertion point. If you choose to retain the linework or convert the linework to a block, move the linework or block to the side, so that it will not obscure the results of adding the custom block to the Door Style.
- Select the Door and, on the Door contextual ribbon tab, on the General panel, select the Edit Style tool. (Or, if you prefer, open the Style Manager, navigate to and select the Door Style in the left pane so that you can edit the style in the right pane.)
- Choose the Display Properties tab. The currently active Display Representations will be displayed in bold type. In this example, both the Plan and Threshold Plan Display Representations are active. As the Threshold Plan Display Representation does not allow for attaching custom display blocks, the Plan Display Representation will be used.
- Select the Display Representation to receive the custom display block. Left click the toggle in the Style Override column for that Display Representation, to add a display override and open the override for editing.
- In the Display Properties dialog, select the Other tab. In the Custom Block Display area, select the Add button.
- In the Custom Block dialog, select the Select Block button. Choose the block you created in the Select a Block dialog and select the OK button to return to the Custom Block dialog. The block should show in the viewer.
- Back in the Custom Block dialog, change the Insertion Point Y: value to Back and set the Frame Component to Inside. When I did this, the block shifted when I changed the Y setting of the Insertion Point, but did not move when I changed the Frame Component to Inside.
- I chose to let the Display setting at Always. If you want to limit the situations where the block will display, select one of the other options: When Intersecting Cut Plane, When Above Cut Plane or When Below Cut Plane, and the block will only display when the selected option is true.
- Select OK to ratify the changes, close the Custom Block dialog and return to the Door Style Properties dialog.
- If you are a bit leery about the fact that the viewer was showing the custom block outside of the Door Panel, you can select the block name that now shows in the list box in the Custom Block Display area and choose the Edit button. That will reopen the Custom Block dialog and the viewer will properly update and show the block inside the Door Panel, where it belongs. If you are not making any changes, you can select the Cancel button to dismiss the Custom Block dialog; otherwise select the OK button after you are finished with any changes.
- In the Display Properties dialog, select the Layer/Color/Linetype tab. Notice that the custom display block now appears as a Display Component. You can make any edits here that you desire. I chose to let the default settings (Layer 0, with ByBlock properties), so that the block will inherit its properties from the parent Door object, just like the Panel, Frame and Swing components. You may want something different. Keep in mind these settings will only be apparent if the linework within the custom display block is on Layer 0 with ByBlock properties, as previously noted.
- When you are done editing the properties of the custom display block component, select the OK button to return to the Door Style Properties dialog. Notice that there is now a check mark in the Style Override column and that the Display Property Source now shows Door Style Override - [YOUR DOOR STYLE NAME HERE] rather than Drawing Default. Select the OK button to accept all of the changes to the Door Style and return to the drawing.
NOTE: If you ever need to edit the display settings for this Door Style's Plan Display Representation, select it and choose the Edit Display Properties button in the upper left of the dialog. Do NOT select the Style Override toggle again; that will clear the toggle and remove the override. If you do that unintentionally, select the Cancel button to exit the dilaog without making any changes, or you will have to recreate the override.
Labels:
ACA,
Door,
Style-level Display Override
January 22, 2019
ACA: Unable to execute the tool. Unspecified error.
Had a support request today for the error dialog shown above, from someone working on a file in AutoCAD® Architecture 2016, who was trying to use a Wall Tool when the error occurred. That was all I was initially told, and "Unspecified error" is not terribly helpful. I asked the user to verify what AutoCAD profile was current and whether the problem was just with one file, or all files. In the course of responding, the user provided additional information. The problem was with just this one file, which had been working properly earlier. The reason the Wall Tool was being used was to fix Walls that were now "faulty." And when opening the file, this other dialog appears:
Bingo! The file had been opened and saved in AutoCAD Architecture 2018. Most likely, SAVEAS was used to set the file format to the 2013 file format, but that left the AEC objects in the file, including the Walls, in the 2018 file format. Those future objects disabled the AEC Commands, leaving the Wall Tool with no command to run. Add that to the list of reasons for getting an Unable to Execute The Tool error dialog.
January 14, 2019
ACA: Accessing AEC Data in Formula Properties for Multiple Versions
2019-09-09: Updated to include AutoCAD Architecture 2020.
Some "advanced" formula properties (see this blog post for an example) that pull in AEC Data not available in the automatic properties have to reference one of the AEC modules, and need to include the first two version numbers for the current version of AutoCAD® Architecture or AutoCAD® MEP that is running. The version numbers can be obtained by running the AECVERSION command in a given version. For example, AecX.AecBaseApplication.8.1 is the Aec Base Application module for the 2019 version.
If you want a formula property to work across multiple versions, it has to know what version is running to be able to call the correct application version. For a small number of versions, that can be built into the formula property without too much difficulty or confusion (see previously linked example). But I recently had a reason to revisit a formula that retrieved the elevation of a ceiling object (based on the Wall elevation formula in the example blog post), and, over ten years later, there are more than a small number of versions that could be supported. In this case, I decided that it made more sense to pull out the code to determine the AECVERSION numbers into a separate formula property. This would be particularly effective if multiple formula properties needed to access it. Taking it one step farther, the following code will give you just the numeric suffix, which the primary formula property could then concatenate with the name of the Aec Application being referenced. Versions 2008 through 2019 are supported by this code.
Note that any line beginning with a single quote is a comment, and is ignored when the VBScript code is evaluated. The ACADVER values shown in the initial comments could be removed; I like to keep them for easy reference, as I tend to forget the ACADVER value for any given release.
Some "advanced" formula properties (see this blog post for an example) that pull in AEC Data not available in the automatic properties have to reference one of the AEC modules, and need to include the first two version numbers for the current version of AutoCAD® Architecture or AutoCAD® MEP that is running. The version numbers can be obtained by running the AECVERSION command in a given version. For example, AecX.AecBaseApplication.8.1 is the Aec Base Application module for the 2019 version.
If you want a formula property to work across multiple versions, it has to know what version is running to be able to call the correct application version. For a small number of versions, that can be built into the formula property without too much difficulty or confusion (see previously linked example). But I recently had a reason to revisit a formula that retrieved the elevation of a ceiling object (based on the Wall elevation formula in the example blog post), and, over ten years later, there are more than a small number of versions that could be supported. In this case, I decided that it made more sense to pull out the code to determine the AECVERSION numbers into a separate formula property. This would be particularly effective if multiple formula properties needed to access it. Taking it one step farther, the following code will give you just the numeric suffix, which the primary formula property could then concatenate with the name of the Aec Application being referenced. Versions 2008 through 2019 are supported by this code.
Set acadApp = GetObject(,"AutoCAD.Application")
'ACADVER values:
'ACD-A2008 = "17.1s (LMS Tech)"
'ACD-A2009 = "17.2s (LMS Tech)"
'ACD-A2010 = "18.0s (LMS Tech)"
'ACD-A2011 = "18.1s (LMS Tech)"
'ACD-A2012 = "18.2s (LMS Tech)"
'ACD-A2013 = "19.0s (LMS Tech)"
'ACD-A2014 = "19.1s (LMS Tech)"
'ACD-A2015 = "20.0s (LMS Tech)"
'ACD-A2016 = "20.1s (LMS Tech)"
'ACD-A2017 = "21.0s (LMS Tech)"
'ACD-A2018 = "22.0s (LMS Tech)"
'ACD-A2019 = "23.0s (LMS Tech)"
'ACD-A2020 = "23.1s (LMS Tech)"
acadVerString = acadApp.ActiveDocument.GetVariable("ACADVER")
'Set ACD-A application string, based on version running:
Select Case acadVerString
Case "17.1s (LMS Tech)"
RESULT = ".5.5"
Case "17.2s (LMS Tech)"
RESULT = ".5.7"
Case "18.0s (LMS Tech)"
RESULT = ".6.0"
Case "18.1s (LMS Tech)"
RESULT = ".6.5"
Case "18.2s (LMS Tech)"
RESULT = ".6.7"
Case "19.0s (LMS Tech)"
RESULT = ".7.0"
Case "19.1s (LMS Tech)"
RESULT = ".7.5"
Case "20.0s (LMS Tech)"
RESULT = ".7.7"
Case "20.1s (LMS Tech)"
RESULT = ".7.8"
Case "21.0s (LMS Tech)"
RESULT = ".7.9"
Case "22.0s (LMS Tech)"
RESULT = ".8.0"
Case "23.0s (LMS Tech)"
RESULT = ".8.1"
Case "23.1s (LMS Tech)"
RESULT = ".8.2"
Case Else
RESULT = "Unknown"
End Select
Note that any line beginning with a single quote is a comment, and is ignored when the VBScript code is evaluated. The ACADVER values shown in the initial comments could be removed; I like to keep them for easy reference, as I tend to forget the ACADVER value for any given release.
November 30, 2017
ACA: Column Bubble "Leader" Object Types
I ran into some display issues with the anchors that connect Column Bubbles to a Column Grid, and discovered that there are two different object types that can be involved, depending upon how the labels were generated. It took me a while to sort all of that out, so I thought I would document it here for my own future reference as well as to share it with others.
If you create the labels by selecting a Column Grid and use the ColumnGridLabel command, or a Custom Column Grid and use the CustomColumnGridLabelAdd command, the anchor objects will be Anchor Bubble to Column Grid objects. If you use the Column Bubble tool (such as the one on the out-of-the-box Annotation tool palette), the anchor objects will be Anchor Lead Entity to Node objects.
If you use a mix of these, any display changes will have to be applied to both object types to have them display the same way.
If you create the labels by selecting a Column Grid and use the ColumnGridLabel command, or a Custom Column Grid and use the CustomColumnGridLabelAdd command, the anchor objects will be Anchor Bubble to Column Grid objects. If you use the Column Bubble tool (such as the one on the out-of-the-box Annotation tool palette), the anchor objects will be Anchor Lead Entity to Node objects.
If you use a mix of these, any display changes will have to be applied to both object types to have them display the same way.
October 31, 2017
ACA: Start Tab and New Drawing Files
This most likely applies to "plain" AutoCAD® and all verticals built on AutoCAD. The Start tab has been there for quite a few releases so far, but somehow I only figured the following out recently, so I thought I would document it here for anyone else who is unaware of it. I almost always start AutoCAD® Architecture from a desktop shortcut, and then start and leave open a blank, new drawing ("Drawing1"). This is an old habit - many releases back, settings would get lost if you closed the program in a "zero-doc" state (no open drawings), so I got in the habit of leaving the initial drawing that opened when starting the program from a shortcut (before the New/Start tab was added), as I like to save and close my working files manually, rather than relying on the program to prompt me to save any unsaved files if I were to close the program with working files open. (I have a lot of little habits like that - otherwise, I am perfectly normal.)
Anyway, now that the Start tab is there on startup, I usually create a new file from my default template, and had been using the Templates drop-down list to choose a template. Here at home, the list of templates is pretty long, but the last template used has the initial highlight, making it semi-easy for me to select it again most of the time. At work, the list is much shorter, making it even easier to get the right one. I had been doing that for years, until I discovered that the Start Drawing rectangular area just above the Templates drop-down list is not just pretty graphics - it is a giant button, and will start a new drawing with the template assigned as the QNEW template in the Options dialog for the current AutoCAD Profile. That is the template I use for Drawing1 99.99% of the time anyway, so now I can save at least three to four seconds and a click every time I start the program by clicking on that button instead of using the drop-down list.
PS. Yes, I see the notification that I have three product updates. I checked, and they are for various versions of Revit®. I promise to download and install them soon.
Anyway, now that the Start tab is there on startup, I usually create a new file from my default template, and had been using the Templates drop-down list to choose a template. Here at home, the list of templates is pretty long, but the last template used has the initial highlight, making it semi-easy for me to select it again most of the time. At work, the list is much shorter, making it even easier to get the right one. I had been doing that for years, until I discovered that the Start Drawing rectangular area just above the Templates drop-down list is not just pretty graphics - it is a giant button, and will start a new drawing with the template assigned as the QNEW template in the Options dialog for the current AutoCAD Profile. That is the template I use for Drawing1 99.99% of the time anyway, so now I can save at least three to four seconds and a click every time I start the program by clicking on that button instead of using the drop-down list.
PS. Yes, I see the notification that I have three product updates. I checked, and they are for various versions of Revit®. I promise to download and install them soon.
October 21, 2017
ACA: Using AutoLISP to Change the Heights of All Doors of a Given Style
There was a request in the AutoCAD® Architecture Forum for a script or customization that could change the heights of all Doors of a specific style to 5'-2". I decided that would be an interesting challenge, and decided to see if I could come up with an AutoLISP® function that would to just that. The exact style name was not given, and I may not have had a style of that name, anyway, so I decided to set up my test file with several instances of the out-of-the-box Bifold - Single Door Style, along with some other Doors.
The routine first gets all of the Doors in the drawing file. If none are found, an alert message is displayed, and the function terminates. If Doors are found, the function iterates over that selection set of all Doors, one Door at a time, looking for Doors of the Bifold - Single Door Style. When one is found, its Height property is changed to 62.0. When all of the Doors have been examined, the program reports that it is complete and lets the user know how many Doors had their height set to 62.0, of the total number of Doors. The routine does not check to see if the height is already 62.0, so it will report the total number of Bifold - Single Doors as being processed. If it were important to report on the number of Doors that actually were changed, the current height could be obtained and compared against the desired height, and any Doors that were already set to the desired height could be skipped.
Change the (if (= sStyleName "Bifold - Single") line, replacing "Bifold - Single" with the name of the Door Style you want to operate on (enclosed in double quotes). Change the (vlax-put-property objDoor 'Height 62.0) line, replacing 62.0 with a real number representing the desired Door Height in whatever your current linear drawing unit is (inches, millimeters, etc.). The code could also be modified to remove the Style Name test, if you wanted to reset the heights of all Doors in a project to a specific height.
The routine first gets all of the Doors in the drawing file. If none are found, an alert message is displayed, and the function terminates. If Doors are found, the function iterates over that selection set of all Doors, one Door at a time, looking for Doors of the Bifold - Single Door Style. When one is found, its Height property is changed to 62.0. When all of the Doors have been examined, the program reports that it is complete and lets the user know how many Doors had their height set to 62.0, of the total number of Doors. The routine does not check to see if the height is already 62.0, so it will report the total number of Bifold - Single Doors as being processed. If it were important to report on the number of Doors that actually were changed, the current height could be obtained and compared against the desired height, and any Doors that were already set to the desired height could be skipped.
(defun C:DRHT ( ; No arguments.
/
iCount ; Loop counter [integer].
iMax ; Total number of Doors in file [integer].
iProc ; Number of Doors processed [integer].
objDoor ; Door object being processed.
ss1 ; All Doors in the file [selection set].
sStyleName ; Style name of Door being processed [string].
) ;_ End arguments and local variables.
(setq ss1 (ssget "_X" '((0 . "AEC_DOOR"))))
(cond
((not ss1) ; No Doors in drawing.
(alert "Drawing file has no Door objects.\nNothing to do!")
) ;_ End condition A1.
(T ; Else, continue.
(setq iMax (sslength ss1)
iCount 0
iProc 0
) ;_ End setq.
(while (< iCount iMax)
(setq objDoor (vlax-ename->vla-object (ssname ss1 iCount))
sStyleName (vlax-get-property objDoor 'StyleName)
) ;_ End setq.
(if (= sStyleName "Bifold - Single")
(progn
(vlax-put-property objDoor 'Height 62.0)
(setq iProc (1+ iProc))
) ;_ End progn.
) ;_ End if.
(setq icount (1+ icount))
) ;_ End while.
) ;_ End condition A2.
) ;_ End cond A.
(prompt
(strcat
"\nDRHT function completed: "
(itoa iProc)
" Door(s) of "
(itoa iCount)
" total Door(s) processed. "
) ;_ End strcat.
) ;_ End prompt.
(prin1)
) ;_ End C:DRHT.
Change the (if (= sStyleName "Bifold - Single") line, replacing "Bifold - Single" with the name of the Door Style you want to operate on (enclosed in double quotes). Change the (vlax-put-property objDoor 'Height 62.0) line, replacing 62.0 with a real number representing the desired Door Height in whatever your current linear drawing unit is (inches, millimeters, etc.). The code could also be modified to remove the Style Name test, if you wanted to reset the heights of all Doors in a project to a specific height.
August 11, 2017
Multiple Plug-ins Ribbon Tabs...
...instead of one Add-ins ribbon tab, in AutoCAD® Architecture 2018. I found this Autodesk Knowledge Network article on the topic, indicating it was for AutoCAD® Map 3D, 2014/2015, but also applying to AutoCAD® and other verticals, for the 2014, 2015, 2016 and 2017 releases. The instructions worked just fine in AutoCAD Architecture 2018.
As noted, I did not need to do Steps 2, 3 and 4, but I did check to see that was all in place prior to proceeding with the balance of the steps. After unloading the partial customization files for the two plug-ins that I had installed and then closing and restarting the program, the individual panels for the plug-ins showed up on a single Add-ins tab. I did have to turn on the display of the Add-ins ribbon tab, but that was easily done by right-clicking on a blank area of the ribbon and choosing Show Tabs > Add-ins from the context menu.
Oddly, it all came in on one Add-ins tab for AutoCAD® MEP 2018, on the same machine.
As noted, I did not need to do Steps 2, 3 and 4, but I did check to see that was all in place prior to proceeding with the balance of the steps. After unloading the partial customization files for the two plug-ins that I had installed and then closing and restarting the program, the individual panels for the plug-ins showed up on a single Add-ins tab. I did have to turn on the display of the Add-ins ribbon tab, but that was easily done by right-clicking on a blank area of the ribbon and choosing Show Tabs > Add-ins from the context menu.
Oddly, it all came in on one Add-ins tab for AutoCAD® MEP 2018, on the same machine.
August 03, 2017
AutoCAD Architecture 2018.0.2 Update Released
The 2018.0.2 Update for AutoCAD® Architecture 2018 was released on Tuesday, August 1, 2017. You can read the full release notes here. This update addresses issues with viewport layers not remaining frozen for Multi-View Blocks, AEC Objects in external reference files with display overrides still plotting and fatal errors caused by an increase in graphic objects during AEC object insertion.
The update is available through your Autodesk Account page or in the Autodesk desktop application.
The update is available through your Autodesk Account page or in the Autodesk desktop application.
May 23, 2017
ACA: Wall Rotation Property
I came across a request today from someone who wanted to be able to set up a Display Theme based on the rotation of Walls, to graphically call out any that were close to, but not quite orthogonal. Rotation is not one of the automatic property sources for Walls, but it is a property of a Wall and that data can be extracted using a Formula property. The raw data is in radians, but you can apply the appropriate factor to covert that to degrees in the Formula property. Here are the formulas I created to make the Wall rotation value available as a property that could then be the basis of a Display Theme:
Radians
Degrees
In both cases, the formulas above assume that, in the same Property Set Definition, an automatic property called ObjectID has been added, referencing the ObjectID automatic property source. The reference to this property in the formula needs to be made by double clicking on that property in the lower left pane of the Formula Property Definition dialog, when creating the Formula property.
Please note that I have had issues with Formula properties that use the Set acadApp = GetObject(,"AutoCAD.Application") line to get the AutoCAD application object, when multiple versions of AutoCAD are open at the same time. Something to keep in mind, should you see Formula properties failing, particularly ones that had worked before. (I am not certain whether the same effect occurs if you have multiple instances of the same version running simultaneously; I rarely do that, but often have multiple versions running at the same time.)
Radians
On Error Resume Next
Set acadApp = GetObject(,"AutoCAD.Application")
Set wallObj = acadApp.ActiveDocument.ObjectIDToObject( [ObjectID] )
RESULT = CDbl( wallObj.Rotation )
Degrees
On Error Resume Next
Set acadApp = GetObject(,"AutoCAD.Application")
Set wallObj = acadApp.ActiveDocument.ObjectIDToObject( [ObjectID] )
pi = 4 * Atn( 1.0 )
RESULT = CDbl( (wallObj.Rotation * 180.0) / pi)
In both cases, the formulas above assume that, in the same Property Set Definition, an automatic property called ObjectID has been added, referencing the ObjectID automatic property source. The reference to this property in the formula needs to be made by double clicking on that property in the lower left pane of the Formula Property Definition dialog, when creating the Formula property.
Please note that I have had issues with Formula properties that use the Set acadApp = GetObject(,"AutoCAD.Application") line to get the AutoCAD application object, when multiple versions of AutoCAD are open at the same time. Something to keep in mind, should you see Formula properties failing, particularly ones that had worked before. (I am not certain whether the same effect occurs if you have multiple instances of the same version running simultaneously; I rarely do that, but often have multiple versions running at the same time.)
May 21, 2017
ACA-AMEP 2018: ByLayer Values in Objects in External References
5/30/2017 UPDATE:
On 5/26/2017, AutoCAD® Architecture 2018.0.1 Update and AutoCAD® MEP 2018.0.1 Update (in both 32-bit and 64-bit versions) were released, and are supposed to resolve this issue. I have not yet had an opportunity to install this to verify. You can read the full release notes here.
There is a bug in the 2018 release of AutoCAD® Architecture and AutoCAD® MEP that affects how the "ByLayer" property value of an AEC object in an external reference is being resolved. If a component is assigned to Layer 0 and then the Color, Linetype, Lineweight, Plot Style, etc. is set to ByLayer, the value assigned to the layer of the parent AEC object should be assigned. When the object is directly in the current file, that works. But if that file is externally referenced into another file, the property value of the layer of the external reference is assigned, rather than the property value of the layer of the parent AEC object. In the image below, the left side shows a Door that has been placed on a layer called A-Door-Demo. The visible components are assigned to Layer 0, with ByLayer Color and Linetype. Layer A-Door-Demo has Color set to 32 and Linetype set to HIDDEN2. On the right side, that file has been externally referenced into another file, and placed on a layer called A-Anno-Refr, which is set to Color 212 and Linetype Continuous. As you can see, the Door components have picked up the Color and Linetype from the layer on which the external reference is placed, not from the layer of the parent Door object.
The suggested workaround, changing "ByLayer" to "ByBlock" works, but would be a major undertaking if you have many components assigned to Layer 0 with ByLayer attributes. We will hold off on deploying 2018 until this is fixed.
As noted in this Autodesk Knowledge Network article, Autodesk is aware of the problem and working on a fix. Keep an eye on that article; I suspect that when a fix is released, the article will be updated to reflect that.
On 5/26/2017, AutoCAD® Architecture 2018.0.1 Update and AutoCAD® MEP 2018.0.1 Update (in both 32-bit and 64-bit versions) were released, and are supposed to resolve this issue. I have not yet had an opportunity to install this to verify. You can read the full release notes here.
There is a bug in the 2018 release of AutoCAD® Architecture and AutoCAD® MEP that affects how the "ByLayer" property value of an AEC object in an external reference is being resolved. If a component is assigned to Layer 0 and then the Color, Linetype, Lineweight, Plot Style, etc. is set to ByLayer, the value assigned to the layer of the parent AEC object should be assigned. When the object is directly in the current file, that works. But if that file is externally referenced into another file, the property value of the layer of the external reference is assigned, rather than the property value of the layer of the parent AEC object. In the image below, the left side shows a Door that has been placed on a layer called A-Door-Demo. The visible components are assigned to Layer 0, with ByLayer Color and Linetype. Layer A-Door-Demo has Color set to 32 and Linetype set to HIDDEN2. On the right side, that file has been externally referenced into another file, and placed on a layer called A-Anno-Refr, which is set to Color 212 and Linetype Continuous. As you can see, the Door components have picked up the Color and Linetype from the layer on which the external reference is placed, not from the layer of the parent Door object.
The suggested workaround, changing "ByLayer" to "ByBlock" works, but would be a major undertaking if you have many components assigned to Layer 0 with ByLayer attributes. We will hold off on deploying 2018 until this is fixed.
As noted in this Autodesk Knowledge Network article, Autodesk is aware of the problem and working on a fix. Keep an eye on that article; I suspect that when a fix is released, the article will be updated to reflect that.
April 25, 2017
ACA/AMEP 2018: New Features Part 2
File Navigation Dialogs
The dialogs for commands that ask for a file to be selected or a folder for a file to be saved, such as the OPEN, ATTACH and SAVEAS commands, will now retain any column sort order you set from one use to the next. Each "type" of file dialog has a separate sort setting. SAVE and SAVEAS will share the same sort, but ATTACH can be different, and must be set separately. The sorting is remembered across sessions of AutoCAD, also.
Drafting Settings Dialog
This dialog is now resizable.
Quick Access Toolbar and the Layer Control
The Layer Control has been added to the list of tools that can be added to the QAT by using the drop-down list at the right end of the toolbar. It is turned off initially, but is there on the drop-down list, waiting for you to select it, if desired.
System Variable Monitor on the Status Bar
The System Variable Monitor tool will appear in the tray at the right end of the Status Bar when a System Variable that is being monitored is changed from its preferred value. In previous versions, you could left click on this tool, and the System Variable Monitor dialog would open, allow you to review the settings and status, and reset all monitored variables to their preferred values. You can still do that in 2018; new is the ability to right click on the tool to get a context menu with three choices:
Off-screen Selection
If you start a selection window when zoomed in, and have to either pan or zoom out/zoom in to another section of the drawing to select the opposite corner, such that your first corner is now off screen, the off-screen objects encompassed by the selection window will now be selected.
Linetype Gap Selection Improvements
The ability to select objects with a non-continuous linetype, or have the gaps in the linework of such objects be recognized by commands like EXTEND has now been extended to both complex and DGN linetypes. Complex linetypes are those that have text or shapes embedded into the linetype. This feature also now works for all object types, including Splines and Polylines with non-zero width.
Share Design View Enhancements
Introduced with the 2017 release (on the A360 ribbon tab, on the Share panel, select the Share Design View tool to start the process for the current drawing, which must be saved), this feature allows you to upload a drawing file to an anonymous location in the Autodesk A360 cloud, and then share views of the drawing with others, who only need to have a supported browser (Chrome, Firefox and other browsers supporting WebGL 2D graphics) to view the file. The actual DWG file is not made available, just the ability to view it. By default, uploaded files expire in 30 days; newly added is the ability to find previous uploads and to extend the expiration date, if desired.
The dialogs for commands that ask for a file to be selected or a folder for a file to be saved, such as the OPEN, ATTACH and SAVEAS commands, will now retain any column sort order you set from one use to the next. Each "type" of file dialog has a separate sort setting. SAVE and SAVEAS will share the same sort, but ATTACH can be different, and must be set separately. The sorting is remembered across sessions of AutoCAD, also.
Drafting Settings Dialog
This dialog is now resizable.
Quick Access Toolbar and the Layer Control
The Layer Control has been added to the list of tools that can be added to the QAT by using the drop-down list at the right end of the toolbar. It is turned off initially, but is there on the drop-down list, waiting for you to select it, if desired.
System Variable Monitor on the Status Bar
The System Variable Monitor tool will appear in the tray at the right end of the Status Bar when a System Variable that is being monitored is changed from its preferred value. In previous versions, you could left click on this tool, and the System Variable Monitor dialog would open, allow you to review the settings and status, and reset all monitored variables to their preferred values. You can still do that in 2018; new is the ability to right click on the tool to get a context menu with three choices:
- Configure System Variable Monitor: Selecting this is the same as left clicking on the tool.
- Reset System Variables: Reset all monitored System Variables to their preferred values without opening the dialog.
- Display Notification: Balloon notification of changes to monitored System Variables is turned on if there is a check mark in front of this item. Select this item from the context menu to remove the check mark, if present, or to add the check mark, if absent.
Off-screen Selection
If you start a selection window when zoomed in, and have to either pan or zoom out/zoom in to another section of the drawing to select the opposite corner, such that your first corner is now off screen, the off-screen objects encompassed by the selection window will now be selected.
Linetype Gap Selection Improvements
The ability to select objects with a non-continuous linetype, or have the gaps in the linework of such objects be recognized by commands like EXTEND has now been extended to both complex and DGN linetypes. Complex linetypes are those that have text or shapes embedded into the linetype. This feature also now works for all object types, including Splines and Polylines with non-zero width.
Share Design View Enhancements
Introduced with the 2017 release (on the A360 ribbon tab, on the Share panel, select the Share Design View tool to start the process for the current drawing, which must be saved), this feature allows you to upload a drawing file to an anonymous location in the Autodesk A360 cloud, and then share views of the drawing with others, who only need to have a supported browser (Chrome, Firefox and other browsers supporting WebGL 2D graphics) to view the file. The actual DWG file is not made available, just the ability to view it. By default, uploaded files expire in 30 days; newly added is the ability to find previous uploads and to extend the expiration date, if desired.
April 22, 2017
ACA/AMEP 2018: New Features Part 1 - External Reference Improvements
I usually start out my first "new features" article for a given release by remarking that I have been busy, and apologizing for the delay in preparing the article. While I am indeed busy this year as well, and that has contributed to the tardiness of this article, another contributing factor is my lack of enthusiasm over the lack of new AutoCAD® Architecture and AutoCAD® MEP features in the 2018 release. My understanding is that you all (meaning, all of you end users out there) have been telling Autodesk that you would rather have them fix things that need fixing in the existing features, rather than adding new features. While I like fixing bugs or adjusting the design of a feature to better suit typical industry workflows as much as the next person (maybe more so), in my mind most of that effort should be in the province of a service pack or hotfix, unless it truly is a major change from the original feature design and the original feature design more or less worked as designed. This is particularly upsetting given that the pain of a new file format is being inflicted, without any offsetting new features that required a new file format to implement.
So, a number of items that had been reported as not working as expected have been fixed. Support for 4k monitors has been integrated for AutoCAD Architecture and AutoCAD MEP dialogs, palettes, etc. (I do not have 4k monitors, so I am taking their word on that.) And, all of the wonderful new things added to the core AutoCAD feature set have been integrated into AutoCAD Architecture/MEP. The balance of this article will look at the improvements made to external references.
External Reference Improvements
So, a number of items that had been reported as not working as expected have been fixed. Support for 4k monitors has been integrated for AutoCAD Architecture and AutoCAD MEP dialogs, palettes, etc. (I do not have 4k monitors, so I am taking their word on that.) And, all of the wonderful new things added to the core AutoCAD feature set have been integrated into AutoCAD Architecture/MEP. The balance of this article will look at the improvements made to external references.
External Reference Improvements
- Relative path is the new default when attaching an externally referenced file to a drawing. Use the REFPATHTYPE System Variable to set a different default path type: 0 = No Path, 1 = Relative Path and 2 = Full Path.
- Use of a relative path for an externally referenced file no longer requires that the host file be named/saved. Instead, the full path will temporarily be shown in the Saved Path column, with a preceding "*" and, in the Details section, the Pending Relative Path property will show as "Yes". Once the file is saved, any pending relative paths will be resolved and show the relative path in lieu of the temporary full path.
- If you save a file to a new location and that file has relatively pathed external reference files attached, you will be prompted as to whether or not the relative paths should be updated for the new location. If you only plan to save this one file to the new location and you want the relatively pathed external references to be found, you will most likely want to update the relative paths. If you eventually intend to move (or copy) the relatively referenced files such that they will be in the same relative location, then not updating the paths may be the appropriate choice.
- There are two new right-click contextual menu choices when dealing with an externally referenced file that is "not found".
- Select New Path: This option provides the opportunity to browse to a new location (path) for the "not found" file. If there are additional "not found" external references, you will be asked if the new path should be applied to those, as well.
- Find and Replace: This option allows you to select one or more external references and then specify a target path (Find saved path) and specify a replacement path (Replace with). For ONLY the external references that were selected when you right clicked and chose Find and Replace, AutoCAD will look for any that have the target path and will replace that path with the replacement path.
If all of the selected external references currently have the same path, that path will be offered as the initial default in the Find saved path edit box. If you select external references with different paths, you will have to supply both the Find and the Replace paths. Note that if you use the ellipsis button at the right side of either edit box, you will get the full path of the selected folder, regardless of the path type shown in the Find edit box, or the path type used for the selected external references. You can manually edit that path to be a relative path, if desired. If the external reference uses a relative path, providing the equivalent full path in the Find box will not result in a match. In limited testing, providing the full path as the Replace path for an external reference that is currently set to relative path did result in the relative equivalent to that full path being applied.
Find and Replace also appears on the right click context menu when selecting "found" external references and can be used to repath multiple references at one time (provided that the current and replacement paths are the same for all selected external references). Note also that the text entered in both edit boxes has to be an actual path. You cannot just enter the text you want to replace in the Find edit box and the text that you want to substitute in the Replace edit box; the complete path must be used in both (whether a full path or a relative path).
- When right clicking on one or more selected references and using the Change Path Type context menu item, if all of the selected items currently have the same path type, that path type will be disabled in the cascading contextual submenu. If there are multiple path types in the selected references, then all three options will be enabled.
- The Open option right click context menu option is no longer disabled for unloaded external references.
- If you rename an unloaded external reference on the External References palette, it will no longer automatically be reloaded. You will need to reload the reference in a separate action if and when you want it reloaded. Note: As in previous versions, using the RENAME command, and the Rename dialog, to rename an unloaded external reference will leave the external reference unloaded. New in 2018, if you use the Rename dialog or the CLASSICXREF command's Xref Manager to rename an external reference, that change will show immediately in the Reference Manager palette, without the need to reload the renamed reference.
- There has also been a minor change to the dialog that appears when opening a drawing with external references that cannot be found. Instead of referring to these files as "missing", they are now noted as "Not Found". The text on the button that opens the Reference Manager has also been simplified.
Labels:
2018,
ACA,
AMEP,
New Features,
Xref
April 11, 2017
ACA: Property Set Definitions, Applies To - Just How Many Polyline Types Are There?
If you ever want to do any scheduling in AutoCAD® Architecture that involves polylines, you will find that there are three different polyline types to which your Property Set Definition can apply. You could select all three, to be safe. Here is an explanation of what each type is, should you want to be more precise (or want to explicitly exclude any of the types).
If you select a polyline to which the Polyline (2D) choice applies, the Properties palette will show it as "2D Polyline" at the top. If you use the LIST command, it will indicate that it is a "POLYLINE".
If you select a polyline to which the Polyline (3D) choice applies, the Properties palette will show it as "3D Polyline" at the top. If you use the LIST command, it will indicate that it is a "POLYLINE".
Here are the Automatic Properties that are available with each type. Note that the Polyline and Polyline (2D) have the same Automatic Properties; Polyline (3D) has some of the same, but lacks the Closed, Elevation and Thickness properties.
- Polyline: This choice applies to "modern," so-called "light-weight" LWPOLYLINEs. If you have PLINETYPE set to 1 or the default value of 2, then the PLINE command will make this type. (If it is set to 2, and you open an R14-format drawing (or older), any existing polylines will be converted to the the "new" format; if it is set to 1, existing polylines from R14 or older format drawings are not converted.)
- Polyline (2D): This choice applies to the old format polylines. You have to set PLINETYPE to 0 to create new polylines in that format. Unless you have a compelling reason to do so, I would not recommend that. The LWPOLYLINE format results in smaller file sizes and faster processing.
- Polyline (3D): This choice applies to 3D polylines created with the 3DPOLY command. Polylines created by the PLINE command are "flat" or 2D; all vertices have the same Z-coordinate in the UCS that was current at the time of creation, set by the first point selected. In a 3D polyline, the Z-coordinate of each vertex is independent of those of the other vertices.
If you select a polyline to which the Polyline (2D) choice applies, the Properties palette will show it as "2D Polyline" at the top. If you use the LIST command, it will indicate that it is a "POLYLINE".
If you select a polyline to which the Polyline (3D) choice applies, the Properties palette will show it as "3D Polyline" at the top. If you use the LIST command, it will indicate that it is a "POLYLINE".
Here are the Automatic Properties that are available with each type. Note that the Polyline and Polyline (2D) have the same Automatic Properties; Polyline (3D) has some of the same, but lacks the Closed, Elevation and Thickness properties.
March 31, 2017
ACA: Nested XLINEs Unselectable
If you include an XLINE in a Block Definition, when you place an instance of that Block, you will not be able to select the XLINE. This brief Screencast starts out with two XLINEs, a CIRCLE and a square closed POLYLINE. As you can see, the XLINEs can be selected when they are placed directly in the drawing. But after putting all four elements into a Block Definition, you cannot select the resulting BLOCK REFERENCE by left clicking on the nested XLINE or by running a crossing window over the XLINE.
Putting an XLINE in a Block Definition is not something I have ever needed to do, but if you have a use case for it, be aware of this limitation. NOTE: If the Block Definition contains only XLINEs, then you can select the BLOCK REFERENCE by selecting one or more of the nested XLINES. They only become unselectable when there are other object types included in the Block Definition.
Putting an XLINE in a Block Definition is not something I have ever needed to do, but if you have a use case for it, be aware of this limitation. NOTE: If the Block Definition contains only XLINEs, then you can select the BLOCK REFERENCE by selecting one or more of the nested XLINES. They only become unselectable when there are other object types included in the Block Definition.
Subscribe to:
Posts (Atom)





































