IsValidInterference Rule - Intergraph Smart 3D - Administration & Configuration - Hexagon

Intergraph Smart 3D Interference Checking

Language
English
Product
Intergraph Smart 3D
Subproduct
Interference Checking
Search by Category
Administration & Configuration
Smart 3D Version
13

Checks to determine if the detected interference should be considered valid. This rule is called when a new interference is detected and when an existing interference is being modified (modify). See Creating and Distributing IFC Rules.

  • Create Interference (input existingClashBeingModified is false) - Triggered just after interference detection detects an interference and just before saving that interference to the database. This rule decides whether you need to save this interference in the database. For example, industry practice is to not report the Insulation and Insulation interferences when two pipes are connected by an elbow. This rule also allows user notes and enables you to choose your own status for the interference.

  • Modify Interference (input existingClashBeingModified is true) - Triggered when the interference detection process tries to modify an interference because the parts participating in the collision were modified. The default implementation only changes the status and notes of an interference. You can see their properties and change/add/remove notes and the status of the interference. After processing, if the function decides that this interference is not valid, this function returns False to tell the system to remove the existing interference.

The sample code below shows skipping an interference if both participating objects are in the “GHOST” PG and updating an Interference’s remark when its type is Severe.

public override bool IsValidInterference ( Ingr.SP3D.Common.Middle.Interference interferenceObject, InterferingObjectInfo interferringObjectA,InterferingObjectInfo interferringObjectB, bool existingClashBeingModified)

{

//make sure first argument to objectBelongToPG is all UPPPERCASE

if (ObjectBelongsToPG("GHOST", interferringObjectA, interferringObjectB))

{

return false;

}

string appendNotes = "dummy comment";//If user adds any string here that will be appended to the IFC object.

if(interferenceObject.Type == InterferenceType.Severe)

{

string existingRemark = interferenceObject.Remark;

interferenceObject.Remark = existingRemark + appendNotes;

}

return true;

}