cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Quick Properties - Acres

Quick Properties - Acres

When choosing the Properties through the CUI to be displayed  for Quick Properties for an object like Polyline, etc.... allow an option for the Area to be displayed in Acres.

 

 

 

 

Capture.JPG

5 Comments
troma
Mentor

Or you could just work in metric instead  Smiley Tongue

Anonymous
Not applicable

Has anybody been able to add acres?  I would like to do the same.  I'm a surveyor and it would be fantastic to be able to quickly list the acres of a closed polygon.  Like what we used to be able to do with "design properties" in LDD ;).

BlackBox_
Advisor

1+

 

We should be able to report information in a unit other than the default units in Quick Properties.

 

 

While I cannot help with the topic directly, I can offer this, which I use for a workaround. Haha

 

Two reporting utilities, the first a simple Command, and the latter a Reactor (see below); my default units are in Feet; modify as needed.

 

Cheers

 

(vl-load-com)

(defun c:AddArea (/ *error* ss area)

  (defun *error* (msg)
    (if ss (vla-delete ss))
    (cond ((not msg))                                                   ; Normal exit
          ((member msg '("Function cancelled" "quit / exit abort")))    ; <esc> or (quit)
          ((princ (strcat "\n** Error: " msg " ** ")))                  ; Fatal error, display it
    )
    (princ)
  )
  
  (if (ssget '((0 . "CIRCLE,HATCH,*POLYLINE")))
    (progn
      (vlax-for	x (setq ss (vla-get-activeselectionset acDoc))
	(setq area (cons (vla-get-area x) area))
      )
      (prompt (strcat "\nTotal area: "
		      (rtos (setq area (apply '+ area)) 2 2)
		      " SF | "
		      (rtos (/ area 9.0) 2 2)
		      " SY | "
		      (rtos (/ area 43560.0) 2 2)
		      " AC "
	      )
      )
    )
  )
  (*error* nil)
)

 

(vl-load-com)

(defun Start:AreaReactor ()
  (or *AreaReactor*
      (setq *AreaReactor*
             (vlr-miscellaneous-reactor
               nil
               '((:vlr-pickfirstmodified . Callback:AreaReactor))
               )
            )
      )
  (prompt "\nArea reactor loaded. \n")
  (princ)
  )
(defun Callback:AreaReactor (rea lst / ss area)
  (if
    (and
      (setq ss (cadr (ssgetfirst)))
      (< 0 (sslength ss))
      (setq ss (vla-get-activeselectionset
                 (vla-get-activedocument (vlax-get-acad-object))
                 )
          )
      )
    (progn
      (vlax-for x ss
        (if (vlax-property-available-p x 'Area)
          (setq area (cons (vla-get-area x) area))
          )
        )
      (vla-delete ss)
      (grtext -1 (strcat "\nTotal area: "
		      (rtos (setq area (apply '+ area)) 2 2)
		      " SF | "
		      (rtos (/ area 9.0) 2 2)
		      " SY | "
		      (rtos (/ area 43560.0) 2 2)
		      " AC "
	      )
              )
      )
    (grtext -1 "")
    )
  )
(Start:AreaReactor)
BlackBox_
Advisor

Also, why does Civil 3D provide the Area Property for Feature Lines, if they report 0.00?

 

While Area is not a Property reported by vlax-dump-object, it does return T for calls to (vlax-property-available-p <FeatureLineObject> 'Area)... So... What gives?

 

Also, Feature Lines do not support the vla-Explode() Method in LISP, from which we *could* derive a *Polyline to cull for this information as well (and delete once the Area has been extracted).

 

 

 

 

Mode normality = this.Mode;
this.Mode = Modes.Rant;

Especially given the new .NET Feature Line API, the fact that Feature Lines derive from Feature Type, which itself derives from the AcDb.Entity Type (aka inheritance), and AcDb.Entity can be cast as AcDb.Curve, which inherently exposes an Area Property - I'm quite disappointed that Autodesk completely neglected to include Area as a native Property for the Feature Line class.

 

this.Mode = normality;

 

... My $0.02

BlackBox_
Advisor

Revised code - since I am unable to edit my earlier post (how long has this been an issue for Autodesk forums?!) - so that the Reactor excludes Feature Lines from reporting nothing but zeros:

 

(vl-load-com)

(defun Start:AreaReactor ()
  (or *AreaReactor*
      (setq *AreaReactor*
             (vlr-miscellaneous-reactor
               nil
               '((:vlr-pickfirstmodified . Callback:AreaReactor))
             )
      )
  )
  (prompt "\nArea reactor loaded. \n")
  (princ)
)
(defun Callback:AreaReactor (rea lst / ss area)
  (if
    (and
      (setq ss (cadr (ssgetfirst)))
      (< 0 (sslength ss))
      (setq ss (vla-get-activeselectionset
                 (vla-get-activedocument (vlax-get-acad-object))
               )
      )
    )
     (progn
       (vlax-for x ss
         (if (vlax-property-available-p x 'Area)
            (setq area (cons (vla-get-area x) area))
         )
       )
       (vla-delete ss)
       (if (< 0. (setq area (apply '+ area)))
         (grtext -1
                 (strcat "\nTotal area: "
                         (rtos area 2 2)
                         " SF | "
                         (rtos (/ area 9.0) 2 2)
                         " SY | "
                         (rtos (/ area 43560.0) 2 2)
                         " AC "
                 )
         )
       )
     )
     (grtext -1 "")
  )
)
(Start:AreaReactor)  

Can't find what you're looking for? Ask the community or share your knowledge.

Submit Idea