Move custom .dlls to SharedContent folder - Intergraph Smart 3D - Reference Data

Intergraph Smart 3D Planning Reference Data

Language
English
Product
Intergraph Smart 3D
Subproduct
Planning
Search by Category
Reference Data
Smart 3D Version
11 (2016)

You must save custom .dlls, including delivered .dlls that you have modified, in the [Reference Data Folder]\SharedContent\Custom Symbols folder on a central reference data server.

Use the following workflow to copy your customized .dlls.

  1. Recompile each project in a Version 2016 (11.0) client installation.

  2. Copy the new .dlls to the [Reference Data Folder]\SharedContent\Custom Symbols folder.

    • You can create hierarchy folders as needed under the Custom Symbols folder.

    • If a custom .dll has a localizer .dll, both files must be located in the same folder.

    • .dlls ending with "–Ref.dll" or "_Ref.dll" are treated as reference .dlls and are ignored. Do not copy these .dlls from the client machine containing the Visual Basic source code.

  3. Run Tools > Update Custom Symbol Configuration.

    Create or update the custom symbol configuration file

  • Whenever a symbol or naming rule class is accessed, the software searches for the .dll as follows:

    1. The software checks for the ProgID entry in the xml files. If an entry exists, then the corresponding .dll is loaded, and an instance of the class is created.

    2. If an entry does not exist, the software searches previously registered .dlls on the local computer.

    3. If any entry is not found for the ProgID in either .xml file, and the .dll is also not registered on the local machine, the software returns an error. In this case, you should copy the .dll to the [Reference Data Folder]\SharedContent\Custom Symbols folder and run Update Custom Symbol Configuration in Project Management.

      If a ProgID entry exists in the .xml files, that .dll is used even though another or the same copy of the .dll is registered on the local machine. The order of priority when creating an instance of an object is: CustomSymbolConfig.xml, SystemSymbolConfig.xml, and then the registry.

  • When you add a new custom .dll to the [Reference Data Folder]\SharedContent\Custom Symbols folder or modify an existing custom .dll, you must re-run Update Custom Symbol Configuration in Project Management.

  • If a Visual Basic 6 component uses helper classes, and the helper classes are instantiated by calling CreateObject, you must replace CreateObject. If the helper class is in the same project, then replace it with new. If the helper class is in a different project, then replace it with SP3DCreateObject. SP3DCreateObject tries to instantiate the object using the information in .xml files. If the software does not find an entry in .xml files for the given ProgID, then it calls CreateObject, and implements SP3DCreateObject in the [Product Folder]\Core\Runtime\SP3DCoCreateInstance.dll. When SP3DCreateObject needs to be used, [Product Folder]\Core\Runtime\SP3DCoCreateInstance.dll needs to be referenced in the Visual Basic project. Example usage of SP3DCreateObject is shown below:

    Set oHelperObject = SP3DCreateObject(strHelperProgId)

  • If the Visual Basic 6 symbol class has any public structures or types, they should be made private. For example:

    Public Type InputType

    Name As String

    Description As String

    Properties As IMSDescriptionProperties

    uomValue As Double

    End Type

    Should be changed to:

    Private Type InputType

    Name As String

    Description As String

    Properties As IMSDescriptionProperties

    uomValue As Double

    End Type

  • Debugging and maintaining Visual Basic project references, reference .dlls, and binary compatibility are beyond the scope of this document. Contact your Intergraph Support representative if you have questions.