Friday, May 27, 2011

Reactive Profile Link

Brainstorming ideas for a program to update a profile based on changes in the alignment. Probably could use a program link Mindjet to do it, but don’t have the dough to spend on a software program right now.

  1. Assign profile to adjust when alignment changes.
    • Use the object storage thingy to store the information in the alignment for the profile(s) to update.
    • Also include if the alignment should be checked.
  2. Monitor for changes in an alignment (See ADN’s AutoCAD .NET class for code)
  3. When alignment modified, let user modify the alignment, but create a copy of the original alignment and use later in the code.
  4. Upon ending of the command, check to see if the alignment has been changed.
    • May use a simple check, such as seeing if the length has changed.
    • Compare the alignment entities to see which ones where changed.
  5. Find the last entity modified, and then the first PVI after the end station of entity.
    • Add or subtract the alignment length change to the PVIs after it.
  6. Think about adding a component of the code to link the PVI’s to a particular location in plan view.
  7. Maybe also check to see if the station start point was changed in the Alignment Properties, then adjust the PVI’s based on that change.
  8. Provide a way to turn off the feature.
  9. Maybe provide a check to see if the profile needs to be updated in another drawing, ie the profile and alignment are in different files. This may not be practical though since the alignment and profile tend to want to be in the same file for intersection design.
  10. Provide user notification of changes or feedback for the clueless users?
  11. Maybe provide a notification if the alignment has profiles to add a link.
  12. Make sure to ignore existing ground profiles from the user selection (actually just the ones that aren’t dynamically linked to a surface), don’t want to make the same boneheaded move of the Autodesk programmer's in ignoring them in the OTB reports.
  13. Provide a way to have the user undo the change, let the user have the profile move like the move didn’t happen.
    • Maybe provide transient graphic view of what the profile would look like without the adjustment. Not sure if the AutoCAD native objects would be easy to get to use for the transient graphics, but the override API might come in handy.
  14. Maybe write it in c# for inclusion in a third party program.
    • Benefits of being able to recycle already developed code.
    • Disadvantage no potential income stream from it.
  • Possibly delete remove PVIs from the profile, difficulty in predicting which PVI should be removed.
  • Need to check to see if vertical curves will be impacted from the change, would need to figure out what would happen to them.
    • Adjust to fit
    • Delete offending PVI in front of it.
  • Need to find time/make priority to do, probably need funding to do so. Pre-orders?
  • Error catching.
    • What to do if it doesn’t work. Go back to original state or where the profile failed.
    • Make sure the entity order makes since, especially if the user deleted a segment. If a segment is deleted can the code go through the entities that aren’t connected to locate the location, or store information until the user goes back and reconnects the entities.
    • How to track if the entity constraint changes. How to compare the changed objects. I.e. going from a free to fixed, and seeing if it truly has changed? Would it give a false positive if the multiple changes where made?

1 comment:

Dustin DeKoekkoek said...

I like this idea. We often use profiles for vertical design of pressure water main and irrigation main. It is always a pain to adjust the top/bottom pipe profiles when the alignment changes. In our irrigation main design the alignment is changing all the time so this would be very handy.


Blog Widget by LinkWithin