Annotative dynamic block - need one object to stay fixed

Annotative dynamic block - need one object to stay fixed

Mikel_B
Observer Observer
1,635 Views
4 Replies
Message 1 of 5

Annotative dynamic block - need one object to stay fixed

Mikel_B
Observer
Observer

I have an annotative dynamic block.  It is a section marker.  

When we change from 1/4 to 1/8, the block scales properly, but the "leg" also scales.  I want the "foot" at the end to scale, but the length needs to stay the same. 

 

For example, the block is dynamic, so we set the main body of the block to the left, the pull the leg to the edge of the building on the right.  If I need to change the scale to 1/8, the leg moves, so it is now way past the building. 

 

Same thing is happening with the structural grid bubbles. 

 

Ideas?

 

 

AT 1/4AT 1/4at 1/8at 1/8

 

0 Likes
1,636 Views
4 Replies
Replies (4)
Message 2 of 5

h_s_walker
Mentor
Mentor

Posting a drawing usually helps, but what I would do is use lookup parameters to set the scale and use a scale action on the circle and a stretch angle on the line. See the attached drawing.

 

 

Howard Walker
Did you find this post helpful? Feel free to Like this post.
Did your question get successfully answered? Then click on the ACCEPT SOLUTION button.

EESignature


Left Handed and Proud

0 Likes
Message 3 of 5

Anonymous
Not applicable

I had your exact same issue.

 

The key to solve this problem is that the block should not be annotative, but it will contain annotative object; I have attached a block I use on daily basis that behave as you wish; it is an axis label that I use in plan view: since I could display the plan view at different scale in various viewport I need the text and circle that enclosed it to scale with the viewscale, but they also need to stay in the fixed position

 

Here how it works:

(***WARNING***: the block uses metric units (millimiters); the block is dynamic, it could be more complex than you need; the block parameters are in italian)

 

You need to create a enclosing block which is annotative (see Cerchio in attached drawing); this block must contain:

  1. The geometry you want to enclose the text label (in the simplest case is a plain circle)
  2. A solid hatch associated with that geometry; the solid hatch need to be assigned to a special layer that will print as white (I used a layer I called "Wipeout" which the color property is set to "33, 40, 48" in model space, i.e. the default background color, and the named plot style is set to "WIPEOUT", a style which prints in white and the screening property is set to 0%; I'll explain more on why later)
  3. You create a new block that is your section marker which is NOT annotative (see Asse in attached drawing); this block must include:ù
    1. Insert the enclosing block
    2. Insert the text label as an attribute object and set it to annotative
    3. Insert the remaining geometry that should not scale with viewscale

Now the trickery part:

  1. Still inside the block editor environment for the section marker block:
    1. Select the enclosing block and add the annotative scale you want to display (in my block I've added all the scale from 1:1 to 1:100, because I want to be able to use in wide variety of case)
    2. Close and save the block
  2. In model space:
    1. set the view scale as you wish 
    2. select the section marker block and add the current annotative scale to the block, either via command AIOBJECTSCALEADD or trough right click as shown in image below:2018-09-03 08_42_27-Clipboard.png

       

With the last command you add the annotative scale you want to the attributes contained in the section marker block; in the layout example  there are 3 viewport at differente scale:

  • you can see that in all viewport the enclosing block is the same size and are the text attributes, but the distance between the two label didn't scale;
  • in the viewport at scale 1:100 the label isn't displayed because I didn't add that scale to the block

About the Wipeout layer

I use the solid hatch in order to cover the geometry I didn't want to show, in this case it's the line that connect the two circle: I wasn't able to add a constraint that connects the point end of the line with the quadrant of the circle, so I needed to connect to its center; with the solid hatch I cover the line that is inside the circle, so I don't have problems when the enclosing block scales; this method works best using named plot style, but it can be used also with ctb with some more shenanigans.

 

Last word

I think this more as a workaround then a proper solution because it has some problems and cannot be used in all use-case:

  • for example the geometry that is not annotative will show at every viewscale, a behavior you might not want in some cases
  • this example work very well because the text attribute is aligned in the middle-center and so its base point for scaling is the same of the enclosing block; I have trouble with text attributes whose base point don't coincide.

 

 

Message 4 of 5

syman2000
Mentor
Mentor

Well you can achieve it with the object that you want annotative set as separate block. You basically create another block with those things you want annotative as nested. Then when you put them in, it will scale when you add new scale. See attached.

 

There is a short coming

1. When you stretch the block, your end annotative block will revert back to origin point. Not sure if this was a bug

2. When adding annotative attribute to the block, the nested block will behave inconsistently. All I am getting is 1:1 instead of reflecting on the correct scale.

 

Hope Autodesk has a fix in future release

Check out my Revit youtube channel - https://www.youtube.com/user/scourdx
0 Likes
Message 5 of 5

peter.chaplinW6HWW
Contributor
Contributor

This solution works well,

Just need to find a better way to add or remove the annotative scales rather than editing the block

Perhaps creating Visibility states for each scale.

0 Likes