Interfaces - Intergraph Smart 3D Web API - Customization & Programming - Hexagon PPM

Intergraph Smart 3D Web API Programmers Reference

Language
English (United States)
Product
Intergraph Smart 3D Web API
Subproduct
Smart 3D Web APIs
Search by Category
Customization & Programming
Smart 3D Version
12.1 (2019)

A major difference between the Smart 3D and EDM property definitions is that EDM properties are directly on the class and not on an interface. To find the Smart 3D interface/property that a particular EDM property represents, retrieve the Description annotation for that property. The example below shows the RoutePipePort/NPD EDM property represents the IJDPipePort.NPD Smart 3D property:

<Annotations Target="Com.Ingr.Smart3d.V1.RoutePipePort/Npd">
<Annotation Term="Com.Ingr.Core.V1.DisplayName" 
String="Nominal Size"/>
<Annotation Term="Org.OData.Core.V1.Description" 
String="IJDPipePort.Npd"/>
</Annotations>

In a few instances, not having the interface on the Entity presents a problem when a Smart 3D class implements two interfaces with each having a property with the same name. An Entity cannot have two properties with the same name. When the metadata generator encounters this case, it automatically prepends the interface name and an underscore character ( _ ) to the name of each of the properties to handle this collision. A check of the metadata shows these cases. For example, the GasketPart Smart 3D class has two properties named Manufacturer. As such, both properties are prefixed with their interface in the EDM:

<EntityType Name="GasketPart" 
BaseType="Com.Ingr.Smart3d.V1.CatalogConnectionPart" 
OpenType="true">
<Property Name="IJGasket_Manufacturer" 
Type="Edm.Int64"/>
<Property Name="IJGenericMaterialControlData_Manufacturer" 
Type="Edm.Int64"/>