Jump to content

Add ATTDEF Value to Another ATTDEF Value


gnurob
 Share

Recommended Posts

AutoCAD 2012

 

QUESTION:

 

Is it possible to add the value of one ATTDEF to another ATTDEF where the second ATTDEF obtains one value from a BlockPlaceholder?

 

E.g.

A dynamic block width Parameter named "Width" = 300

ATTDEF1 named "Pocket" = 25

ATTDEF2 = BlockPlaceholder ("Width" selected) + ATTDEF1 ("Pocket" selected)

ATTDEF2 = 325

 

BACKGROUND:

 

This may seem a little convoluted, so let me explain the application. We currently use a dynamic block of a simple rectangle which is STRETCHed to fit the daylight opening of a curtain wall frame (those aluminum/glass walls on many commercial buildings). By inserting this block into every opening of a building it is possible to visually confirm a complete take off as well as verify all sizes are exact (and many many sizes are typical).

 

Glass sizes, however, differ from the daylight opening. The pockets of the frame differ depending on the specific design: resulting in typically 16 mm, 19 mm , and 25 mm larger glass sizes. On the other hand, some frames use a fin retention and may result in glass sizes being 13 mm smaller, not larger.

 

BEST WORKING SOLUTION:

 

 

  1. Create a dynamic block of a rectangle that has a "Width" and a "Height" Parameter
  2. Place a multi-line ATTDEF centered in the rectangle
  3. Insert a Formula in the default value of the ATTDEF
  4. Right-click in the Formula to add a BlockPlaceholder for "Width"
  5. Set units to decimal with 0 precision (forces Metric)
  6. and "+ 25" to Formula
  7. add new line, then "x", then another new line
  8. Right-click in the Formula to add a BlockPlaceholder for "Height"
  9. Set units to decimal with 0 precision (forces Metric)
  10. and "+ 25" to Formula

As you can see, this results in a result like the following:

 

325
x
400

WHATS WRONG WITH BEST WORKING SOLUTION:

 

Unfortunately it does not offer flexibility:

 

  1. Dynamic block permanently set to add a 25 mm pocket
  2. Requires multiple dynamic blocks for each frame type
  3. Forces all units to be Metric

IMPROVEMENTS:

 

 

GOOD:

 

 

Ask user the pocket size (e.g. -13, 16, 19, or 25 mm) when inserting the block and use that value in the Formula field.

 

 

BETTER:

 

 

Allow user to select a pocket size from a list:

 

 

e.g.

 

 

Flush Glazed frame: 16 mm

Curtain Wall frame: 25 mm

Window frame: -13 mm

 

 

ULTIMATE:

 

 

BETTER + works in Metric and Imperial

Link to comment
Share on other sites

Sorry, missed the thread. Are you wanting the dimensions of both the glass and the frame to show up? Do they have to be in the form of an attribute? The reason I ask is that you can use actual dimension and include those in the stretch parameter. The dimnsion will the update. If you are using an attribute extraction to grab what you are asking to be an attdef this will not work. Also, you are still using ACAD 2008 right? Juts makeing sure I dont come up with something you can't use or make yourself.:P

Link to comment
Share on other sites

Thanks for checking this thread out Mike!

 

Only the dimension of the glass is required. The catch is the glass is larger than the frame but only the frame is drawn and available for snap to points. The idea is to place rectangular dynamic blocks into what is referred to as the "daylight opening" and add the additional dimension of the glass residing in the pocket, or nosing.

 

The amount the glass extends beyond the daylight opening varies, therefore a fixed solution such as over-sizing the Length parameter doesn't offer that flexibility. It is also possible to insert a Formula in an attribute and add a fixed value to a block reference to the Length parameter.

 

The challenge is creating a block that can have a variable added/subtracted to the daylight opening without hard coding that amount. The user will define the amount when the block is inserted: attribute ask, drop down, etc.

 

P.S. If a version upgrade is absolutely necessary than its wouldn't be ruled out.

Edited by gnurob
afterthought
Link to comment
Share on other sites

If the oversized offset is a list of standard sizes that you use it would be quite simple to have a dimension and stretch that to either side using a lookup paramter (ie have a 25mm lookup that would stretch the dimension to 25mm on all sides). If it is not a list of standared offset I will try and figure out something over lunch. This is not exaclty what you had requested, but if I understand your request correctly this is a viable alternative.

 

Also, I apologize for not responding, but we had some server work done here and my webpage permissions were reset.

Link to comment
Share on other sites

I think I follow what you're saying and you're on to something. It is preferable to enter and exact figure because an exhaustive list is not possible. However, five dimensions are very common. I'll test and post results.

Link to comment
Share on other sites

Add 4 linear parameters (one on each end of the dimension) that will stretch the ends of dimensions. Chain all of them together with noe grips except one of them. Make the one with the grip scale the other three paramters themselves. This allows for your dynamic offset.

 

The add a stretch parameter on the rectangle that will stretch the rectangle, the dimensions AND the move the fisrt parameter you had added. This will allow you to adjust the size of your window. Voila exactly what you need. If you want an example ill whip something up sometime today.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...