In our last post we added to the duct elevation tag by creating an option to include or not include the insulation thickness in the elevation value. This time we are going to add a manual property definition that will allow us to add a custom offset to each piece of duct. This time instead of adding an option to include or not include the offset in the elevation calculation we will instead always add the offset. By setting the value of the offset to 0′-0″ we can effectively turn off the option. So lets get started!
The first thing we need to do is add a manual property set definition called ElevationOffset to our ECCustomData property set. We should set its Type to Real and its default value to 0.0. This will effectively turn if off by default. The visibility box should be checked so we can type in the value of the offset on the property palette. Lastly we should set the order that the visible property set definitions will be displayed. By default they are always displayed in alphabetical order but by giving the property set definitions a numerical value we can change the order in which they are displayed. We are currently only displaying two property set definitions, ElevationOffset and ShowInsulationOnElevationTag. So it will be easy to find in a large list lets make sure that the ElevationOffset is at the bottom of the list. Number the BOD_Tag as 1, ShowInsulationOnElevationTag as 2, and the Offset as 3. Next we need to make sure that the format for ElevationOffset is set to Standard. Setting to anything else could possibly break our formula and the display of the elevation tag. The last thing we need to do to update our tag is to modify the calculation used to calculate the bottom of duct elevation. If you remember in part three we split the calculation into two separate parts. One with the insulation thickness and one without so we will need to subtract the offset to both of parts of the conditional statement. Yes, you did read that correctly, we need to subtract the offset from the elevation. We are subtracting the offset value because a negative offset (think of this as a negative change in floor height) will cause the duct to appear higher than its surrounding pieces. This means that we must subtract the value from the current elevation. Subtracting a negative value is the same as adding a positive value. If you remember your grade school math two negatives make a positive. The picture to the right shows the complete formula.
The hard stuff is now finished and the only thing left to do is to test our manual offset! to do this just select a piece of duct. You should now see a property set definition called ElevationOffset on the Extended Tab of the Property Palette. Inserting a numerical value will now adjust the elevation tag accordingly for the piece of duct.
Below is a video of the entire process that was described in today’s post.
In the next part of the series we will give the duct even more intelligence by giving it the ability to know where it is located in the project by using AEC Spaces. We will then be able to modify the elevation calculation to take its elevation from the bottom of the space. So if the space itself is lower than its surrounding spaces then the duct will know automatically and adjust its elevation accordingly with no input from the user.