Author Topic: check if block on surface  (Read 2670 times)

0 Members and 1 Guest are viewing this topic.

cadplayer

  • Bull Frog
  • Posts: 385
  • Autocad Civil3d, OpenDCL.Runtime, LISP, .NET (C#)
check if block on surface
« on: November 06, 2012, 10:13:04 AM »
Hello all!

I have a simple question if itīs possible to check if a block is placed on a surface.
In a Civil drawing I have moved block to a surface according to [http://docs.autodesk.com/CIVIL/2010/ENU/AutoCAD%20Civil%202010%20User%20Documentation/index.html?url=WS1a9193826455f5ff1d61fe411049ed455e-6c52-procedure.htm,topicNumber=d0e77825]help[/url]I procedor the surface is changing but the blocks stay on old place. It would be nice if blocks could move dynamically.
Any suggestions?!

PS.: I donīt know how can formatting url better so I only comes for example "Link" and you can push the word
« Last Edit: November 06, 2012, 10:19:44 AM by cadplayer »

huiz

  • Swamp Rat
  • Posts: 845
  • Certified Prof C3D
Re: check if block on surface
« Reply #1 on: November 06, 2012, 02:29:30 PM »
Only Labels are dynamically linked to a Surface.
The conclusion is justified that the initialization of the development of critical subsystem optimizes the probability of success to the development of the technical behavior over a given period.

cadplayer

  • Bull Frog
  • Posts: 385
  • Autocad Civil3d, OpenDCL.Runtime, LISP, .NET (C#)
Re: check if block on surface
« Reply #2 on: November 07, 2012, 03:02:16 AM »
Thanks for replaying, I have test it - very good. For understanding a label is a own Civil entity not a block, but can I convert a label in a block with attribut

If I look on a label entity I miss the value which stay in label (for example hight from a surface)

Select object: ; IAeccSurfaceElevationLabel: IAeccSurfaceLevel Label interface
; Property values:
;   Application (RO) = #<VLA-OBJECT IAeccApplication 0000000049c2e030>
;   Description = Civil 3D API: Felaktig parameter.
;   DisplayName (RO) = Civil 3D API: Felaktig parameter.
;   Document (RO) = #<VLA-OBJECT IAeccDocument 0000000049c2dc10>
;   Flipped = 0
;   Handle (RO) = "48B05"
;   HasExtensionDictionary (RO) = 0
;   Hyperlinks (RO) = #<VLA-OBJECT IAcadHyperlinks 000000004df5f318>
;   LabelStyle = #<VLA-OBJECT IAeccLabelStyle 000000003c2d5e10>
;   Layer = "TERR-TEXT"
;   LeaderAttachmentOption = 0
;   Linetype = "ByLayer"
;   LinetypeScale = 1.0
;   Lineweight = -1
;   MarkerStyle = #<VLA-OBJECT IAeccMarkerStyle 000000003ac61680>
;   Material = "ByLayer"
;   Name = Civil 3D API: Felaktig parameter.
;   ObjectID (RO) = 62
;   ObjectID32 (RO) = 62
;   ObjectName (RO) = "AeccDbSurfaceElevLabel"
;   OwnerID (RO) = 61
;   OwnerID32 (RO) = 61
;   Pinned = 0
;   PlotStyleName = "ByLayer"
;   Reversed = 0
;   ShowToolTip = Civil 3D API: Felaktig parameter.
;   Surface (RO) = #<VLA-OBJECT IAeccTinSurface 000000003abb7600>
;   TrueColor = #<VLA-OBJECT IAcadAcCmColor 000000004df6e5b0>
;   Type (RO) = 9
;   Visible = -1
; Methods supported:
;   ArrayPolar (3)
;   ArrayRectangular (6)
;   Copy ()
;   Delete ()
;   GetBoundingBox (2)
;   GetExtensionDictionary ()
;   GetXData (3)
;   Highlight (1)
;   IntersectWith (2)
;   IsReferenceObject ()
;   IsReferenceStale ()
;   IsReferenceSubObject ()
;   IsReferenceValid ()
;   Mirror (2)
;   Mirror3D (3)
;   Move (2)
;   Rotate (2)
;   Rotate3D (3)
;   ScaleEntity (2)
;   SetXData (2)
;   TransformBy (1)
;   Update ()

mjfarrell

  • Seagull
  • Posts: 14444
  • Every Student their own Lesson
Re: check if block on surface
« Reply #3 on: November 07, 2012, 05:01:42 AM »
you can do away with this need if you insert your blocks through use of Points and Description keys.

what sort of blocks are you wanting to keep on the surface anyway?
Be your Best


Michael Farrell
http://primeservicesglobal.com/

cadplayer

  • Bull Frog
  • Posts: 385
  • Autocad Civil3d, OpenDCL.Runtime, LISP, .NET (C#)
Re: check if block on surface
« Reply #4 on: November 07, 2012, 06:32:54 AM »
Hi Michael!

What are you meaning with "Points and Description keys"

I have a block with a attribut which display high of insertpoint from surface. Type this ...

mjfarrell

  • Seagull
  • Posts: 14444
  • Every Student their own Lesson
Re: check if block on surface
« Reply #5 on: November 07, 2012, 09:25:53 AM »
use points , random on surface instead

one needs to stop using autocad techniques where there is a tool within c3d that does the job better

Be your Best


Michael Farrell
http://primeservicesglobal.com/

cadplayer

  • Bull Frog
  • Posts: 385
  • Autocad Civil3d, OpenDCL.Runtime, LISP, .NET (C#)
Re: check if block on surface
« Reply #6 on: November 07, 2012, 09:40:33 AM »
Thanks but itīs the same result I get with slope labels  :oops:

mjfarrell

  • Seagull
  • Posts: 14444
  • Every Student their own Lesson
Re: check if block on surface
« Reply #7 on: November 07, 2012, 10:29:07 AM »
your block appears to 'only' give surface elvation.
and why would one use a slope lable to get the surface elevation?


what exactly are you after?  Your posted block doesn't offer any clues?
Be your Best


Michael Farrell
http://primeservicesglobal.com/