"GC internal bug" when making a ByCenterStartSweepPoint arc a construction line

I have some arc elements which are using the ByCenterStartSweepPoint technique. When i try to make them construction lines, the nodes fail with the error as follows:

Internal error

GC internal bug: GCBugException.Assert failure.

BugID:1732648031

Any node depending on the arc then gets a technique failed error too. This only seems to happen to arcs using ByCenterStartSweepPoint. Arcs using other techniques in my model are able to become construction lines without any problem. These arcs are also able to be made no visible without any problem too.

Parents
  • Hi Dennis, 

    Which version of AECOsim Building Designer or GenerativeComponents are you using?  Can you please post the script?  (...or e-mail to volker.mueller (at) bentley.com.) 

    Thank you, 

         Volker 

       

  • My version is GC CONNECT edition version 10.01.00.20 as a plugin to aecosim. The DGN file is attached.

    Custom Bar.dgn

  • Thank you, Dennis for sending the file.  This looks like a very refined GC model, obviously having gone through many iterations.

    I can confirm your observation and have filed this issue as a defect. This appears to be very specific to these arcs in their context. I have been able to reproduce this issue by reducing your file to what I found to be the relative smallest case. However, when creating an arc based on three points based on 8-plus digit accurate values from your model, this issue does not arise.

    The question at this point is, what are you trying to achieve by using the combination of ConstructionVisible with IsConstruction? Alternatively, you could assign a similar color and line style to the axial lines and arcs and perhaps place them on a different level for visibility control. (GC's IsConstruction is not equivalent to the MicroStation "Construction" class.) 

    This could provide you with a workable way forward.

    HTH,

        Volker

       

  • What exactly is the specific context that causes this issue? I'm not actually trying to combine visibility and isConstruction, i just had one of each to demonstrate the bug. Ultimately, id like everything to be constructions except for the 3d elements, as i'm making a GNT with this. I only want to be able to see the 3d elements but still have the construction elements visible to other nodes. In this case, i want to be able to access the arc centrepoint which i cant do if its invisible.

  • Hi Dennis,

    I have not been able to isolate the exact condition that leads to this problem. Straightforward cases of Arc.ByCenterStartSweepPoint do not exhibit this problem, and I have not spent extensive amounts of time to figure out which specific condition causes this.  When the development team hits this item in the backlog I expect to hear about what they find.  This may provide a hint what causes this problem to affect some Arcs.

    There is a way to retrieve "Internal Output Properties" from generated node types: by tracing back through exposed outputs.  In the attached file I constructed a crossbar GNT with hidden centroid and axial lines that are used to create the visible structural tubes.  After placement, the expression <GNT name>.<visible output property>.Line.StartPoint (which uses the centroid as input) will yield the centroid of the GNT (or all the centroids, if the GNT is replicated).  In the example, I use a Polygon.ByPointGrid to show that these hidden centroids are accessible as outputs, if in a circuitous way. 

    I should add that I did rename the GNT properties when creating it, although that knowledge is not required. Retrieval is by the property names within the constituent nodes, and only the exposed/visible GNT output property StructrualTubes needs to be known; however, knowledge of how the GNT was constructed is required to trace back from there to the desired GNT constituent. 

    original node names GNT property names property type hidden/internal
    polygon1 PlacementPoly required input no
    tubeFactor tubeFactor optional input no
    strucTubes StructuralTubes output no
    centroid BraceCentroid output YES
    diagonalAxes DiagonalAxes output YES

    The centroid is retrieved as: crossBarWithHiddenComponents1.StructuralTubes.Line.StartPoint.

    StructuralTubes is the visible output of the GNT. strucTubes was constructed as Cone.ByLine. Therefore, its Line property retrieves the DiagonalAxes, diagonalAxes in the original assembly. diagonalAxes is a Line.ByPoints, using centroid (BraceCentroid in the GNT) as StartPoint input. 

    The GNT_Centroids Expression node with value crossBarWithHiddenComponents1.StructuralTubes.Line.StartPoint yields:

    {{crossBarWithHiddenComponents1[0][0].BraceCentroid, crossBarWithHiddenComponents1[0][1].BraceCentroid,  crossBarWithHiddenComponents1[0][2].BraceCentroid}, {crossBarWithHiddenComponents1[1][0].BraceCentroid, crossBarWithHiddenComponents1[1][1].BraceCentroid, crossBarWithHiddenComponents1[1][2].Br... (etc.)

    HTH,

         Volker

    GNTHiddenOutputs.dgn

       

Reply
  • Hi Dennis,

    I have not been able to isolate the exact condition that leads to this problem. Straightforward cases of Arc.ByCenterStartSweepPoint do not exhibit this problem, and I have not spent extensive amounts of time to figure out which specific condition causes this.  When the development team hits this item in the backlog I expect to hear about what they find.  This may provide a hint what causes this problem to affect some Arcs.

    There is a way to retrieve "Internal Output Properties" from generated node types: by tracing back through exposed outputs.  In the attached file I constructed a crossbar GNT with hidden centroid and axial lines that are used to create the visible structural tubes.  After placement, the expression <GNT name>.<visible output property>.Line.StartPoint (which uses the centroid as input) will yield the centroid of the GNT (or all the centroids, if the GNT is replicated).  In the example, I use a Polygon.ByPointGrid to show that these hidden centroids are accessible as outputs, if in a circuitous way. 

    I should add that I did rename the GNT properties when creating it, although that knowledge is not required. Retrieval is by the property names within the constituent nodes, and only the exposed/visible GNT output property StructrualTubes needs to be known; however, knowledge of how the GNT was constructed is required to trace back from there to the desired GNT constituent. 

    original node names GNT property names property type hidden/internal
    polygon1 PlacementPoly required input no
    tubeFactor tubeFactor optional input no
    strucTubes StructuralTubes output no
    centroid BraceCentroid output YES
    diagonalAxes DiagonalAxes output YES

    The centroid is retrieved as: crossBarWithHiddenComponents1.StructuralTubes.Line.StartPoint.

    StructuralTubes is the visible output of the GNT. strucTubes was constructed as Cone.ByLine. Therefore, its Line property retrieves the DiagonalAxes, diagonalAxes in the original assembly. diagonalAxes is a Line.ByPoints, using centroid (BraceCentroid in the GNT) as StartPoint input. 

    The GNT_Centroids Expression node with value crossBarWithHiddenComponents1.StructuralTubes.Line.StartPoint yields:

    {{crossBarWithHiddenComponents1[0][0].BraceCentroid, crossBarWithHiddenComponents1[0][1].BraceCentroid,  crossBarWithHiddenComponents1[0][2].BraceCentroid}, {crossBarWithHiddenComponents1[1][0].BraceCentroid, crossBarWithHiddenComponents1[1][1].BraceCentroid, crossBarWithHiddenComponents1[1][2].Br... (etc.)

    HTH,

         Volker

    GNTHiddenOutputs.dgn

       

Children
No Data