user Node - no byDefault Method

We're trying to generate a user node / feature type which we can use in a placeholder structure in further models. Geometry is based on a single coordinateSystem.
(Code for example at the bottom)
The node seems to be generated correctly as it turns up in the NodeType panel.
But there is no byDefault placement option so we can't place it on a series of coordinate systems.
I slightly remember there were issues with network workspaces (as we're working).
Any hints how to solve the problem?
(GC 08.11.09.436 - ss6)
Ingo

transaction modelChange 'Add baseCS'
{
node User.Objects.baseCS Bentley.GC.NodeTypes.CoordinateSystem
{
Technique = 'AtModelOrigin';
DGNModelName = 'Default';
SymbolSize = 1;
}
}

transaction modelChange 'Add arc01, coordinateSystem03, point05, point07'
{
node User.Objects.coordinateSystem03 Bentley.GC.NodeTypes.CoordinateSystem
{
Technique = 'ByCartesianCoordinates';
XTranslation = <free> 1.0;
YTranslation = <free> 0.0;
ZTranslation = <free> 0.0;
}
node User.Objects.point07 Bentley.GC.NodeTypes.Point
{
Technique = 'ByCartesianCoordinates';
CoordinateSystem = coordinateSystem03;
XTranslation = ;
YTranslation = -2;
ZTranslation = .25;
}
node User.Objects.point05 Bentley.GC.NodeTypes.Point
{
Technique = 'ByCartesianCoordinates';
CoordinateSystem = coordinateSystem03;
XTranslation = ;
YTranslation = 2;
ZTranslation = .25;
}
node User.Objects.arc01 Bentley.GC.NodeTypes.Arc
{
Technique = 'ByPointsOnCurve';
StartPoint = point05;
PointOnCurve = coordinateSystem03;
EndPoint = point07;
}
}

transaction generateGeometricNodeType 'Generate node type UserNode03'
{
type = User.UserNode03;
addAssemblyToDesignFile = false;
inputProperties = {
property Bentley.GC.NodeTypes.CoordinateSystem coordinateSystem03
{
node = User.Objects.coordinateSystem03;
isReplicatable = true;
isParentNodeScope = true;
}
property double point07_YTranslation
{
originalName = point07_YTranslation;
isOptional = true;
defaultValue = -2;
}
property double point07_ZTranslation
{
originalName = point07_ZTranslation;
isOptional = true;
defaultValue = .25;
}
property double point05_YTranslation
{
originalName = point05_YTranslation;
isOptional = true;
defaultValue = 2;
}
property double point05_ZTranslation
{
originalName = point05_ZTranslation;
isOptional = true;
defaultValue = .25;
}
};
outputProperties = {
property Bentley.GC.NodeTypes.Point point07
{
node = User.Objects.point07;
isConstruction = true;
}
property Bentley.GC.NodeTypes.Point point05
{
node = User.Objects.point05;
isConstruction = true;
}
property Bentley.GC.NodeTypes.Arc arc01
{
node = User.Objects.arc01;
isDynamic = true;
}
};
}
  • Hello Ingo,

    Yes, we have been trying to trouble-shoot a similar situation in a networked environment before, with no break-through.  This prompted us to change how GNTs are managed by GC, starting with CONNECT Edition.  As far as we could figure it out, it was related to specific users' network accounts and the way Windows OS manages DLLs.

    I'll look at your specific details later today and may have additional questions.  Perhaps there is a way we can make it work for your situation.

    Regards,

          Volker

       

  • Hello Ingo,

    As noted in my first response, this is most likely based on your network situation.  At this point, it is uncertain, whether a satisfactory solution exists under the given conditions.  The suspicion we had so far is related to "trust" issues between for example perceived "downloaded internet content" and the client machine using it. 

    There are several questions related to this issue: when user A generates a GNT DLL to the networked project location, when user A uses the GNT, does it show the ByDefault technique?  When user B uses this GNT (created by user A), does user B see the ByDefault technique?  What happens in the reverse case (user B generating the GNT)?  When using multi-install to install a client-only (default) set up of GC on user A's computer, and generating a GNT DLL, is the ByDefault technique available to user A?  After copying the DLL to the networked project location, does user A still see the ByDefault technique?  Does user B see the ByDefault technique? 

    In the other case, we ran several tests and analyzed the resulting GNT DLLs without discernible differences between the GNTs that showed the ByDefault technique, and those that did not show the ByDefault technique.  However, we did not get through all of the tests to be able to exclude that hidden properties in the users' network accounts may contribute (the user profiles were set up several years apart, and initially with different authority).  After transferring the GNT DLLs into our context, the ByDefault technique always showed, and the DLLs had in our context and analyses the same publicly exposed techniques or methods or any other properties, even if they did not show the ByDefault technique in the users' networked context.  The users' IT consultant did not find any differences between user accounts on the network, where the user who generated the GNT onto the networked project storage did not see the ByDefault technique, while the user's colleague did see the ByDefault technique on the same DLL. 

    You see that this was not straightforward.  Our offer for on-location trouble shooting support to ensure full systematic exclusion of factors was not taken up, and it is unclear whether a solution was found by those users, or whether they upgraded to CONNECT Edition, in which we introduced a solution circumventing the direct exchange of DLLs and use an intermediate generated node type format. 

    Our expectation for this new way of handling GNTs in CONNECT Edition is twofold: avoid the strict versioning of DLLs which requires keeping the GNT-generating scripts and re-running them for each new version of GC; with CONNECT Edition, instead of keeping the DLLs, users are encouraged to save GNTs as *.gnt library files.  These are version-upward compatible and should be what is used to access/share GNTs.  The DLLs are generated only for GC's internal use on each user's machine, like any other DLLs used by our software.  The *.gnt files should also avoid the other issues which DLLs run up against specifically security and trust issues, e.g. being stripped from e-mails, or being tagged as untrustworthy internet content. 

    HTH,

          Volker

       

  • Hi Volker,

    thanks for your thoughts on the topic.

    To add some conditions in our case:

    We're working on two workstations with GC

    The ByDefault method doesn't show up at user A when user A generates the GNT

    On a standalone installation everything is fine (byDefault shows up and we can use the GNT as desired)

    Is there a 'low level' technique to solve the problem: (manually/automatically) copying the dll to a location GC can find and use it.

    Where could a location be we can use in a network insallation?

    and for the moment

    Connect is no option as Connect AECOsim+CG (update1) crashes constantly in our (german/Win7) enviroment.

    (Service Request 7000693199)

    Ingo

  • Hi Ingo,

    Thank you for your response.

    What happens when you create the GNT in a standalone installation and then copy the DLL to the networked project folder and load it into GC from there (while running in that project)?

    Regards,

          Volker

       

  • Steps tested:

    We generate the GNT in a local workspace configuration. We can use it there with byDefault Method.

    If we copy this GNT to the network location it isn't recognzed by GC (not if GC is running or restarted)

    If we generate the same node with network workspace (byDefault is missing) and replace it with the local GNT the network GNT isn't recognized. (When GC is running replacing isn't possible. After restart nothing appears in the interface).

    The local generated GNT somehow seems to be registered with the local workspace and isn't loaded from a network location.

    Any further suggestions?

    regards, Ingo