.NET Framework error in Geopak SS3, .722. The trigger here is probably also contributing to another fatal error which I'll mention.
Here's the background: I'm going through my CADD files to see that each one is good before I upload it to the client. One of my corridor files has a blank range in the corridor where there had previously been valid stuff. The first rational thought I had was to check the profile. So I went to my civil alignments file and brought up my profile view. I see a ridiculously big sag parabola, so I click on it to investigate. Boom. Fatal error that goes to the autoreport sequence. (Ridiculously big parabola in this case means the VPT area looks fine at about 2%, more or less, but the VPC area is at a slope of something like -100% rather than something more like -1% or -2% which I could expect.)
So I open the file up again, this time going through civil data. I find the offending profile, then open up the tree on it and click one of the constituent elements. Boom. This time, it's an unhandled .NET exception. The specific element is labeled "Profile: Type: CurveFromElement".
System.Exception: Base geometry is null.
at Bentley.Civil.Geometry.Model.LinearEntity2d.EvaluateGeometry()
at Bentley.Civil.Geometry.Model.LinearEntity2d.get_Geometry()
at Bentley.Civil.Geometry.Model.ComplexProfileToProfilesRule.GetValidGeometryTags(List`1& tags, ProfileElement testGeometry)
at Bentley.Civil.Geometry.Model.ComplexProfileToProfilesRule.GetValidGeometryTags()
at Bentley.Civil.Geometry.Model.ComplexProfileToProfilesRule.GetGeometryTagsForSubLinearComponent(ProfileEntity subObject)
at Bentley.Civil.Geometry.Presentation.NavProfileEntity.SubComponentIndexes()
at Bentley.Civil.CadSystem.Microstation.MstnNavObject.HiliteOrDehilite(Boolean hiliteIn)
at Bentley.Civil.CadSystem.Microstation.MstnNavObject.Hilite()
at Bentley.Civil.Objects.Presentation.TreeProvider.AddToSelection(NavigatorTree treeIn, List`1 navigatorNodesIn)
at Bentley.DesignExplorer.NavigatorTree.MultiSelectAddCallback(Object senderIn, MultiSelectTreeViewEventArgs eventArgsIn)
at Bentley.UI.Controls.WinForms.MultiSelectTreeView.OnMultiSelectAdd(MultiSelectTreeViewEventArgs eventArgsIn)
at Bentley.UI.Controls.WinForms.MultiSelectTreeView.ProcessNodeSelection(TreeNode treeNodeIn, Boolean controlModifierOnIn, Boolean shiftModifierOnIn, TreeViewAction actionTypeIn)
at Bentley.UI.Controls.WinForms.MultiSelectTreeView.OnBeforeSelect(TreeViewCancelEventArgs eventArgsIn)
at System.Windows.Forms.TreeView.TvnSelecting(NMTREEVIEW* nmtv)
at System.Windows.Forms.TreeView.WmNotify(Message& m)
at System.Windows.Forms.TreeView.WndProc(Message& m)
at Bentley.UI.Controls.WinForms.MultiSelectTreeView.WndProc(Message& messageIn)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
My next move will be to look at the other components of the profile, and then going through the civil element browser (I can't remember what it's called now). Any other thoughts?
I see now that this error did not trigger the option to either abort, ignore, or try again. It looks like I can select other components and the information listed in Element Information is probably valid for those, but when I select that first component, element information stays just as it had for the last component I click. It's quite obvious that this specific element is broken.
I ran keyin "civil display browser" and found the offending element under ProfileEntity. When I found the specific item (because the red legend), I opened that up and didn't see any more red. Not sure what else to do I selected the deepest red entity I could find (which was the one directly under ProfileEntity) and then did repair relationship. Now it seems to behave.
Any guesses at why this transpired?