Migrating Add-Ins to MicroStation CONNECT
Mark Stefanchuk – CTO Phocaz, Inc.
• Deck Sections• Pile Bent• Concrete Bent• Title Block• Project Final (ProjectWise)• Deed Writer• Property Stats• Reference Manager• Bridge Notes• Bridge Group• Splash• DOTS• SDW• BRPE• SDJ-Electra• MH.LOS
• Existing Features• Signs C3D• Signs ORD• TRNSprt• Pavement Marking Tool• Place Cell Group• Place Block Group• Drainage Structures• Border Swap• Revision Shift• Project Close Out• Extract TB• Spot Elevation• ET Golf• PhotogeoDWG/DGN
1989
1993
1997
2004
2010
2014 - Present
Add-In
TriviaHow old is J?
Challenge #1: Upgrade Resistance
PLAN
ALIGN
ANALYZE
IMPLEMENT
MEASURE
Challenge #1: Upgrade Resistance
Suggestion: Continuous Tech Management
PLAN
ALIGN
ANALYZE
IMPLEMENT
MEASURE
Challenge #1: Upgrade Resistance
Suggestion: Continuous Tech ManagementIDEATION
SUNSET
Bonus TriviaWhat does the
J mean?
Challenge #2: Multiple Versions
Challenge #2: Multiple Versions
Suggestion: Multiple Configurations
Challenge #2: Multiple Versions
Suggestion: Code to the lowest common denominator
Challenge #3: Civilized Cells (ORD)
i.e. The API does not have any tools to create and/or modify them.
Challenge #3: Civilized Cells
Suggestion (from Bentley): Use Key-ins
Challenge #3: Civilized Cells
Suggestion (ours): Don’t
Challenge #3: Civilized Cells
Suggestion (ours): Don’t
Challenge #4: Cell Placement is Slow
Challenge #4: Cell Placement is Slow
Solution: Avoid large arrays of nested cells.
Challenge #4: Cell Placement is Slow
Solution: Avoid large arrays of nested cells.
Challenge #5: CreateCellElement1 is Broken in OpenRoads Designer
Challenge #5: CreateCellElement1 is Broken in OpenRoads DesignerSolution: Loop through element list and add separately.
TriviaWhat is the
config variable used to tell
MicroStation where to find cell libraries?
Challenge #6: Text Element Justification is Broken in MS CONNECT
Challenge #6: Text Element Justification is Broken in MS CONNECTSolution: Replace with text node element, CreateTextNodeElement1
Challenge #7: Tag Elements are Broken in MS CONNECTTag elements will not hide…
Challenge #7: Tag Elements are Broken in MS CONNECTSolution: Replace tags with element types.
Challenge #8: CreateTransientElement1 has changed – a little…You can’t pass null or an index to the first element of an array in CONNECT.
Challenge #8: CreateTransientElement1 has changed – a little…Solution: Pass complete element not just the index.
Challenge #9: ORD is a Moving Target
Challenge #9: ORD is a Moving Target
Solution: Test!
Challenge #10: Add-In Requirements
Challenge #10: Add-In Requirements
Solution: Compiler directives
Challenge #10: Add-In Requirements
Solution: Compiler directives
Challenge #11: Command Key-ins
csproj requires a manual change to the command table ItemGroup in order to support key-ins.
Challenge #11: Command Key-ins
csproj requires a manual change to the command table ItemGroup in order to support key-ins.
Add-Ins can have their own configs. What MS folder are
these found in?
Challenge #12: The GUI
How can I avoid copying my GUI code?
Challenge #11: The GUI
How can I avoid copying my GUI code?
Challenge #12: The GUI
Solution: Link from one project to the other.
Bonus Challenge: Support
Positive thoughts…
Bonus Challenge: Support
Solution: Submit a ticket.
Bonus Challenge: Support
Solution: Use the news groups.
TriviaHow do you pronounce Phocaz,
Inc.?
Thanks!
• Mark Stefanchuk – CTO at Phocaz, Inc.• [email protected]• Melbourne, FL
mailto:[email protected]
Migrating Add-Ins to MicroStation CONNECTSlide Number 2Slide Number 3Slide Number 4Slide Number 5Slide Number 6Slide Number 7Slide Number 8Challenge #1: Upgrade ResistanceSlide Number 10Slide Number 11Slide Number 12Challenge #2: Multiple VersionsChallenge #2: Multiple VersionsChallenge #2: Multiple VersionsChallenge #3: Civilized Cells (ORD)Challenge #3: Civilized CellsChallenge #3: Civilized CellsChallenge #3: Civilized CellsChallenge #4: Cell Placement is SlowChallenge #4: Cell Placement is SlowChallenge #4: Cell Placement is SlowChallenge #5: CreateCellElement1 is Broken in OpenRoads DesignerChallenge #5: CreateCellElement1 is Broken in OpenRoads DesignerSlide Number 25Challenge #6: Text Element Justification is Broken in MS CONNECTChallenge #6: Text Element Justification is Broken in MS CONNECTChallenge #7: Tag Elements are Broken in MS CONNECTChallenge #7: Tag Elements are Broken in MS CONNECTChallenge #8: CreateTransientElement1 has changed – a little…Challenge #8: CreateTransientElement1 has changed – a little…Challenge #9: ORD is a Moving TargetChallenge #9: ORD is a Moving TargetChallenge #10: Add-In RequirementsChallenge #10: Add-In RequirementsChallenge #10: Add-In RequirementsChallenge #11: Command Key-insChallenge #11: Command Key-insSlide Number 39Challenge #12: The GUIChallenge #11: The GUIChallenge #12: The GUIBonus Challenge: SupportBonus Challenge: SupportBonus Challenge: SupportSlide Number 46Thanks!