In this post, I discussed some general tips on how to work with shapes with intelligent behaviors. Today, I’ll walk through the specific example of the Rack Diagram shapes and how to allow non-integer numbers to be entered for the “U” values (e.g. 1.5 U) in the shapes.

There are two parts to this. First, you need to allow the shape to be able to resize to the right height:

  1. Select the shape.
  2. Window>Show ShapeSheet
  3. In the Shape Transform/Height cell, change the formula to remove the "ROUND" function.
    1. Old: =SETATREF(Prop.UCount,SETATREFEVAL(SETATREFEXPR(0.4375 ft)/User.OneUHeight),TRUE)+ROUND(Prop.UCount,0)*User.OneUHeight
    2. New: =SETATREF(Prop.UCount,SETATREFEVAL(SETATREFEXPR(0.4375 ft)/User.OneUHeight),TRUE)+Prop.UCount*User.OneUHeight

Next, you need to make sure that the right values appear in (1) the custom properties window and (2) the text:

  1. Right click on the shape and select Properties.
  2. Right click on the window that pops up and select "Define Shape Data"
  3. Select "Height in U's" and change the Format to Floating Point and click ok (this makes the custom property show the unrounded value)
  4. To fix the text, it is a little more complicated. You need to go to View>Drawing Explorer, find the right shape, then find the subshape that displays the text and edit the field formula to remove the ROUND function. If anyone is interested I can provide more extensive directions on how to do that. You can see a little bit of information about working in the Drawing Explorer window in this post.