Author Topic: retrieve CorridorFeatureLine from Civil-database  (Read 185 times)

0 Members and 1 Guest are viewing this topic.

Peter2

  • Bull Frog
  • Posts: 457
retrieve CorridorFeatureLine from Civil-database
« on: August 03, 2017, 06:12:06 am »
(I'm stumbling from one obstacle to the next)

My basic target is to calculate intersection between "SAMPLE_Lines" and "CorridorFeatureLines". Many steps are done (alignments, profiles, surfaces, corridors, ..) but now I'm searching for "Corridorfeaturelines"

In the Swamp are some examples relating FeatureLines.

Here is a post called ..
"Selecting a Civil 3D Corridor Feature Line"
https://forums.autodesk.com/t5/autocad-civil-3d-customization/selecting-a-civil-3d-corridor-feature-line/td-p/6694642
But this is a COM example, converting a corridor to a block and extracting the block.

Dumping a corridor-object seem to bring up no directions to follow ..

Code - Auto/Visual Lisp: [Select]
  1. *************   Anfang Dump Ausgabe   *************
  2. AECC_CORRIDOR
  3. ; IAeccCorridor: Schnittstelle 3D-Profilkörper
  4. ; Eigenschaftswerte:
  5. ;   Application (RO) = #<VLA-OBJECT IAeccApplication 0000024d2dd05a80>
  6. ;   Baselines (RO) = #<VLA-OBJECT IAeccBaselines 0000024d2dd07010>
  7. ;   CodeSetStyleName = "CH Lageplan mit Füllung"
  8. ;   CorridorSurfaces (RO) = #<VLA-OBJECT IAeccCorridorSurfaces 0000024d2dd066b0>
  9. ;   Description = ""
  10. ;   DisplayName (RO) = "3D Profilkörper Hauptachse"
  11. ;   Document (RO) = #<VLA-OBJECT IAeccDocument 0000024d2dd07520>
  12. ;   EntityTransparency = "VonLayer"
  13. ;   FeatureLineCodeInfos (RO) = #<VLA-OBJECT IAeccFeatureLineCodeInfos 0000024d2dd086c0>
  14. ;   Handle (RO) = "839AB"
  15. ;   HasExtensionDictionary (RO) = 0
  16. ;   Hyperlinks (RO) = #<VLA-OBJECT IAcadHyperlinks 0000024d4582f0e8>
  17. ;   Layer = "C-3D Profilkörper"
  18. ;   Linetype = "ByLayer"
  19. ;   LinetypeScale = 1.0
  20. ;   Lineweight = -1
  21. ;   Material = "ByLayer"
  22. ;   MaximumTriangleSideLength = 0.0
  23. ;   Name = "3D Profilkörper Hauptachse"
  24. ;   ObjectID (RO) = 42
  25. ;   ObjectName (RO) = "AeccDbCorridor"
  26. ;   OutOfDate (RO) = 0
  27. ;   OwnerID (RO) = 43
  28. ;   PlotStyleName = "ByLayer"
  29. ;   RebuildAutomatic = 0
  30. ;   ShowToolTip = -1
  31. ;   TrueColor = #<VLA-OBJECT IAcadAcCmColor 0000024d4582ef60>
  32. ;   Visible = -1
  33. ; Unterstützte Methoden:
  34. ;   AddBaseline (3)
  35. ;   ArrayPolar (3)
  36. ;   ArrayRectangular (6)
  37. ;   Copy ()
  38. ;   Delete ()
  39. ;   GetBoundingBox (2)
  40. ;   GetExtensionDictionary ()
  41. ;   GetXData (3)
  42. ;   Highlight (1)
  43. ;   IntersectWith (2)
  44. ;   IsReferenceObject ()
  45. ;   IsReferenceStale ()
  46. ;   IsReferenceSubObject ()
  47. ;   IsReferenceValid ()
  48. ;   Mirror (2)
  49. ;   Mirror3D (3)
  50. ;   Move (2)
  51. ;   Rebuild ()
  52. ;   Rotate (2)
  53. ;   Rotate3D (3)
  54. ;   ScaleEntity (2)
  55. ;   SetXData (2)
  56. ;   TransformBy (1)
  57. ;   Update ()
  58.  

And the description of the "CorridorFeatureLine Class" does not show me how to get there:
http://docs.autodesk.com/CIV3D/2018/ENU/API_Reference_Guide/html/fd9c26dc-d4c1-aa59-b030-3e370280ff5f.htm

Any advice will be appreciated.
Peter

AutoCAD 2016 - 2018 German (so some technical terms will be badly retranslated to English)
Civil 3D 2017 - 2018

Peter2

  • Bull Frog
  • Posts: 457
Re: retrieve CorridorFeatureLine from Civil-database
« Reply #1 on: August 03, 2017, 09:24:33 am »
Peter

AutoCAD 2016 - 2018 German (so some technical terms will be badly retranslated to English)
Civil 3D 2017 - 2018

Peter2

  • Bull Frog
  • Posts: 457
Re: retrieve CorridorFeatureLine from Civil-database
« Reply #2 on: August 04, 2017, 04:26:01 am »
Learned lessons 1:

Maybe I'm totally wrong, but there seem to be a huge difference between "feature lines" and "feature lines extracted from baselines inside corridors".

Here is the dump of the extracted feature line:
Code - Auto/Visual Lisp: [Select]
  1. Befehl: (setq feat_line_item (vlax-invoke-method feat_line_tmp "Item" 0))
  2. #<VLA-OBJECT IAeccFeatureLine 000001ed3f111210>
  3.  
  4. Befehl: (vlax-dump-object feat_line_item t)
  5. ; IAeccFeatureLine: FeatureLine-Schnittstelle
  6. ; Eigenschaftswerte:
  7. ;   CodeName (RO) = "Achspunkt"
  8. ;   Corridor (RO) = #<VLA-OBJECT IAeccCorridor 000001ed26240290>
  9. ;   FeatureLinePoints (RO) = #<VLA-OBJECT IAeccFeatureLinePoints 000001f55362e650>
  10. ; Keine Methoden
  11. T
  12.  

And here the dump of a "normal" feature line:
Code - Auto/Visual Lisp: [Select]
  1. Befehl: (setq rechts (vlax-ename->vla-object  (car (entsel "\nBitte Rechts wählen : "))))
  2.  
  3. Bitte Rechts wählen : #<VLA-OBJECT IAeccLandFeatureLine 000001f5539a46b0>
  4.  
  5. Befehl: (vlax-dump-object rechts t)
  6. ; IAeccLandFeatureLine: IAeccLandFeatureLine-Schnittstelle
  7. ; Eigenschaftswerte:
  8. ;   Application (RO) = #<VLA-OBJECT IAeccApplication 000001f55d9b06a0>
  9. ;   Description = ""
  10. ;   DisplayName (RO) = ""
  11. ;   Document (RO) = #<VLA-OBJECT IAeccDocument 000001f55d9b0790>
  12. ;   ElevationPointsCount (RO) = 0
  13. ;   EntityTransparency = "VonLayer"
  14. ;   Handle (RO) = "850FB"
  15. ;   HasExtensionDictionary (RO) = 0
  16. ;   Hyperlinks (RO) = #<VLA-OBJECT IAcadHyperlinks 000001ed43ac7958>
  17. ;   IsEditable (RO) = -1
  18. ;   Layer = "C-Elementkante"
  19. ;   Length2D (RO) = 25.184
  20. ;   Length3D (RO) = 25.184
  21. ;   Linetype = "ByLayer"
  22. ;   LinetypeScale = 1.0
  23. ;   Lineweight = -1
  24. ;   Material = "ByLayer"
  25. ;   MaxElevation (RO) = 0.0
  26. ;   MaxGrade (RO) = 0.0
  27. ;   MiniElevation (RO) = 0.0
  28. ;   MiniGrade (RO) = 0.0
  29. ;   Name = ""
  30. ;   ObjectID (RO) = 42
  31. ;   ObjectName (RO) = "AeccDbFeatureLine"
  32. ;   OwnerID (RO) = 43
  33. ;   PIPointsCount (RO) = 2
  34. ;   PlotStyleName = "ByLayer"
  35. ;   PointsCount (RO) = 2
  36. ;   ShowToolTip = -1
  37. ;   TrueColor = #<VLA-OBJECT IAcadAcCmColor 000001ed43ab6eb0>
  38. ;   Visible = -1
  39. ; Unterstützte Methoden:
  40. ;   ArrayPolar (3)
  41. ;   ArrayRectangular (6)
  42. ;   Copy ()
  43. ;   Delete ()
  44. ;   DeleteFeaturePoint (1)
  45. ;   Get2dDistanceAtPoint (1)
  46. ;   Get2dDistanceBetweenPoints (2)
  47. ;   GetBoundingBox (2)
  48. ;   GetBulgeAtPoint (1)
  49. ;   GetDeflectionAngleAtPoint (1)
  50. ;   GetExtensionDictionary ()
  51. ;   GetGradesAtPoint (3)
  52. ;   GetPoints (1)
  53. ;   GetSurfaceIntersectPoints (1)
  54. ;   GetXData (3)
  55. ;   Highlight (1)
  56. ;   InsertFeaturePoint (2)
  57. ;   InsertFeaturePoints (2)
  58. ;   IntersectWith (2)
  59. ;   IsGradeBreak (1)
  60. ;   IsReferenceObject ()
  61. ;   IsReferenceStale ()
  62. ;   IsReferenceSubObject ()
  63. ;   IsReferenceValid ()
  64. ;   Mirror (2)
  65. ;   Mirror3D (3)
  66. ;   Move (2)
  67. ;   RaiseFeatureLine (1)
  68. ;   Rotate (2)
  69. ;   Rotate3D (3)
  70. ;   ScaleEntity (2)
  71. ;   SetBulgeAtPoint (2)
  72. ;   SetElevationsFromOffsetSource (1)
  73. ;   SetPointElevation (1)
  74. ;   SetPointsElevation (1)
  75. ;   SetXData (2)
  76. ;   TransformBy (1)
  77. ;   Update ()
  78. T
  79.  
  80.  
Peter

AutoCAD 2016 - 2018 German (so some technical terms will be badly retranslated to English)
Civil 3D 2017 - 2018

Jeff_M

  • King Gator
  • Posts: 3904
  • C3D user & customizer
Re: retrieve CorridorFeatureLine from Civil-database
« Reply #3 on: August 04, 2017, 10:33:31 am »
Correct. a Corridor Featureline is quite different than the LandFeatureline. Why they decided to use the same name for different objects, I don't know, but it can be confusing.