Reading XML Clash Files

XML has its own vocabulary. The following explains XML grammar as used in XML clash files.

Elements and attributes required to be able to import clash results back into DMU session are identified in red.
Values that can be modified are identified in green.

<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT Comment EMPTY> -> a Comment node does not contain any children
<!ELEMENT Picture EMPTY>
-> a Picture node does not contain any children
<!ELEMENT Vector EMPTY>
-> a Vector node does not contain any children
<!ELEMENT Point EMPTY>
-> a Point node does not contain any children
<!ELEMENT Date EMPTY>
-> a Date node does not contain any children
<!ELEMENT ViolatedRule EMPTY> -
> a ViolatedRule node does not contain any children
<!ELEMENT Viewpoint (Vector+)>
-> a Viewpoint node contains 1 or n Vector nodes
<!ELEMENT Matrix (Vector+ , Point)>
-> a Matrix node contains 1 or n Vector nodes and a Point node
<!ELEMENT Product (Matrix*)>
-> a Product node contains 0 or n Matrix nodes
<!ELEMENT Specification (Product+)>
-> a Specification node contains 1 or n Product nodes
<!ELEMENT GeometricAspect (Point*, Viewpoint*)>
-> a GeometricAspect node contains 0 or n Point nodes and 0 or n Viewpoint nodes
<!ELEMENT Interference (Product+, ViolatedRule*, GeometricAspect, Comment, Picture*)>
-> an Interference node contains 1 or n Product nodes, 0 or n ViolatedRule nodes, a GeometricAspect node, a Comment node and 0 or n Picture nodes
<!ELEMENT ClashResult (Interference*)>
-> a ClashResult node contains 0 or n Interference nodes
<!ELEMENT ClashSpec (Specification*)>
-> a ClashSpec node contains 0 or n Specification nodes
<!ELEMENT ClashElement (Date, ClashSpec, ClashResult)>
-> a ClashElement node contains a Date node, a ClashSpec node and a ClashResult node

<!ATTLIST ClashElement
Responsible CDATA #REQUIRED
-> name of the person who owns the clash
CATDocument CDATA #REQUIRED
-> useful in standalone mode; URL path to the CATProduct
Version(1.0|1.1|1.2) "1.2">
-> the XML version; 1.2 refers to the current version

<!ATTLIST ClashSpec -> describes the clash specification
Name CDATA #REQUIRED
-> name of the clash node in the DMU tree
DistanceClearance CDATA #REQUIRED
-> distance clearance distance specified in the clash specification
TabTitle CDATA #REQUIRED
-> useful for the XSL style sheet; only the name of a title
TabListTitle CDATA #REQUIRED
-> useful for the XSL style sheet; only the name of a title
SelectMode (INSIDE|OUTSIDE|ALL|TWO_LIST) "ALL"
-> corresponds to the second Type drop-down list box in interactive mode
CaseOfCalc (INTERFERE_CONT|INTERFERE_CLEAR|INTERFERE_PENETR_CLASH|INTERFERE_RULE) "INTERFERE_CONT">
-> corresponds to the first Type drop-down list box (interference type) in interactive mode

<!ATTLIST ClashResult -> describes the clash result
Name CDATA #REQUIRED -> the name of the clash result in the DMU tree
TabTitle CDATA #REQUIRED -> just here for the XSL style sheet; name of the title
NbInterf CDATA #REQUIRED -> number of interferences contained in the clash result
ComputationCase (INTERFERE_CONT|INTERFERE_CLEAR|INTERFERE_PENETR_CLASH|INTERFERE_RULE) "INTERFERE_CONT"> -> the interference type used to check for interferences

<!ATTLIST Date -> attributes corresponding to the date of the export
Year CDATA #REQUIRED
Month CDATA #REQUIRED
Day CDATA #REQUIRED
Hour CDATA #REQUIRED
Minute CDATA #REQUIRED
Second CDATA #REQUIRED>

<!ATTLIST Product
Alias CDATA #REQUIRED -> the name of the clashing product
ProcessMode (ENOVIAV5|ENOVIAVPM|STANDALONE) "ENOVIAV5"
-> describes the type of connection we need to retrieve the product
DescriptionID CDATA #IMPLIED
-> depending on the type of connection, the descriptionID will contain:

  • ENOVIAVPM: coID compID caEnv catab Clinkable

  • ENOVIA LCA: UUID/DocumentVersion

  • FILE MODE: the path in the tree from the terminal node to the root product, excluding the root product itself

ShapeSource CDATA #IMPLIED -> the path to the shape when working in file mode
ShapeName CDATA #REQUIRED -> the name of the shape
Alien (YES|NO) "YES"> -> useful only in a Space Engineering Assistant context (SPE product)

<!ATTLIST Point
Ux CDATA #REQUIRED
-> the X-coordinate of the point
Uy CDATA #REQUIRED
-> the Y-coordinate of the point
Uz CDATA #REQUIRED>
-> the Z-coordinate of the point

<!ATTLIST Vector
CorrespondingData (Rx|Ry|Rz) "Rx" -> the corresponding rotation vector in the matrix
Vx CDATA #REQUIRED -> the X-coordinate of the vector
Vy CDATA #REQUIRED -> the Y-coordinate of the vector
Vz CDATA #REQUIRED> -> the Z-coordinate of the vector

<!ATTLIST Viewpoint -> the focus, angle and projection for the corresponding viewpoint
Focus CDATA #REQUIRED
Angle CDATA #REQUIRED
Projection (CYLINDRIC|CONIC) "CYLINDRIC">

<!ATTLIST Picture
HRef CDATA #REQUIRED
Preview CDATA #IMPLIED>
-> the URL corresponding to the picture and its preview (relative path)

<!ATTLIST Comment
Value CDATA #REQUIRED>
-> if a comment has been defined on the corresponding interference, the value will contain it

<!ATTLIST GeometricAspect
IntersectCurveLength CDATA #REQUIRED
-> contains the length of the curve describing the clash
ExtractOrDistValue CDATA #REQUIRED>
-> contains the length of the vector corresponding to:

  • If the result is a clearance, it contains the minimum distance between the two products

  • If the result is a clash, it contains the length of the extraction vector

<!ATTLIST Interference
NumInterf CDATA #REQUIRED
-> the position of the interference in the clash feature
ResultType (Clash|Contact|Clearance) "Clash"
-> the interference type, either clash, contact or clearance
DistanceClearance CDATA #IMPLIED
-> just in case of clearance computation; contains the clearance value defined in the dialog box
Status (NotInspected|Relevant|Irrelevant|Solved) "NotInspected"
-> the status of the interference
RetrieveInf (Old|New|Modified) "New"> -> the information about clash history

The following node is needed only in case of clash computation with knowledge rules:

<!ATTLIST ViolatedRule
Name CDATA #REQUIRED
-> the name of the rule
TypeCalc CDATA #REQUIRED
-> the type of computation defined by the rule
Clearance CDATA #REQUIRED
-> the clearance value defined in the rule
Priority CDATA #REQUIRED
-> the priority of the rule
PenetrationCandidate CDATA #IMPLIED
-> Yes if it is candidate for penetration, No if not
Severity CDATA #IMPLIED>
-> the severity of the rule