Custom Foul Check - Intergraph Smart 3D - Reference Data

Intergraph Smart 3D Reference Data

3D Design and Visualization
Intergraph Smart 3D
Reference Data

Some business objects delegate foul check to the symbol which allows the symbol writer to override the default implementation. For example, a footing assembly symbol may need to return all the supported member parts as connected parts to suppress interference between them and the footing. A footing component symbol might need to return non-participant for interference check to avoid duplicate interference reporting by the components.

The 3D API framework provides an interface ICustomFoulCheck which should be realized by the symbol to support custom behavior of foul check for parts.

Supporting custom behavior for foul check on a symbol involves the following steps:

  1. Realize ICustomFoulCheck on the symbol.

  2. GetConnectedParts should return the collection of connected parts or return null.

  3. GetInterferenceType should return the interference type.

The following code example shows how to implement GetConnectedParts and GetInterferenceType for the footing assembly symbol:

GetConnectedParts(ByVal oBO As BusinessObject) As ReadOnlyCollection(Of BusinessObject)

'Get all the supported objects from the footing.

Dim oConnectedPartsList As New List(Of BusinessObject)()

'Get all the supported objects from the footing.

'For each supported object, if it is a MemberSystem, get its parts and add them to the list.

Return New ReadOnlyCollection(Of BusinessObject)(oConnectedPartsList)

End Function

GetFoulInterfaceType(ByVal oBO As BusinessObject) As FoulInterfaceType

'Footing assembly is participant in interference.

Return FoulInterfaceType.Participant

End Function