diff --git a/.bzrignore b/.bzrignore
index 51dc1e0cc1c7694dd645eb5390cb0a4012ae3ec6..ae892e042304d3a12eb8afcbd476a56194012642 100644
--- a/.bzrignore
+++ b/.bzrignore
@@ -7,7 +7,5 @@ plugins
 testontologies/ontologyV06_Jambalaya.properties
 siaras/Parser.java
 siaras/Siaras.ast
-siaras/PrettyPrinter.jrag
-siaras/Rewrites.jrag
 siaras/log.tmp
 *Jambalaya.properties
diff --git a/CompilerGeneration.jrag b/CompilerGeneration.jrag
index 67d0c68c4b2f70749336b75841028de3bcb4efb2..639b4b0fe9d608b81fd7e2a17c254fe9fd647a61 100644
--- a/CompilerGeneration.jrag
+++ b/CompilerGeneration.jrag
@@ -109,6 +109,16 @@ aspect AbsGrammarGeneration {
 
 }
 
+aspect GenAspects {
+	public void Start.genAspects(PrintStream pStream) {
+		pStream.println();
+		pStream.println("import java.io.PrintStream;");
+		pStream.println();
+		genRewrites(pStream);
+		genPrettyPrinter(" ",pStream);
+	}
+}
+
 aspect GenPrettyPrinter {
 	public void ASTNode.genPrettyPrinter(String ind, PrintStream pStream) {
 		for (int i=0; i<getNumChild(); i++) {
@@ -117,8 +127,6 @@ aspect GenPrettyPrinter {
 	}
 
 	public void Start.genPrettyPrinter(String ind, PrintStream pStream) {
-		pStream.println();
-		pStream.println("import java.io.PrintStream;");
 		pStream.println();
 		pStream.println("aspect PrettyPrinter {");
 		pStream.println("  public void ASTNode.prettyPrint(String indent, PrintStream pStream) {");
@@ -156,8 +164,6 @@ aspect GenRewrites {
     }
 
 	public void Start.genRewrites(PrintStream pStream) {
-		pStream.println();
-		pStream.println("import java.io.PrintStream;");
 		pStream.println();
 		pStream.println("aspect Rewrites {");
 		super.genRewrites(pStream);
diff --git a/GenCompiler.java b/GenCompiler.java
index 973ab1b9f6c4c72d022cb4a243e2e8086784d03c..1dcf3afdd7c990223affee53f424ac07050a3518 100644
--- a/GenCompiler.java
+++ b/GenCompiler.java
@@ -40,15 +40,17 @@ public class GenCompiler extends Parser {
 			pStream = new PrintStream(new File(fileName));
 			ast.genParser(pStream);
 
-			// Generate Rewrites
-			fileName = "siaras/Rewrites.jrag";
+			// Generate aspects
+			fileName = "siaras/GeneratedAspects.jrag";
 			pStream = new PrintStream(new File(fileName));
-			ast.genRewrites(pStream);
+			ast.genAspects(pStream);
+// 			ast.genRewrites(pStream);
+// 			ast.genPrettyPrinter("",pStream);
 
 			// Generate PrettyPrinter
-			fileName = "siaras/PrettyPrinter.jrag";
-			pStream = new PrintStream(new File(fileName));
-			ast.genPrettyPrinter("",pStream);
+// 			fileName = "siaras/PrettyPrinter.jrag";
+// 			pStream = new PrintStream(new File(fileName));
+// 			ast.genPrettyPrinter("",pStream);
 		} catch (java.io.FileNotFoundException e) {
 			System.out.println("Could not create file: "+fileName);
 			e.printStackTrace();
diff --git a/siaras/GeneratedAspects.jrag b/siaras/GeneratedAspects.jrag
new file mode 100644
index 0000000000000000000000000000000000000000..9429268e28ca1834b6274cd57deec59b95299f45
--- /dev/null
+++ b/siaras/GeneratedAspects.jrag
@@ -0,0 +1,7572 @@
+
+import java.io.PrintStream;
+
+
+aspect Rewrites {
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("HexapodRobot") && !(this instanceof Thing))
+      to HexapodRobot {
+      HexapodRobot node = new HexapodRobot();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Skill) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSkillList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Property) {
+          l.add(getElement(i));
+        }
+      }
+      node.setPropertyList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Read2DMatrixCode") && !(this instanceof Thing))
+      to Read2DMatrixCode {
+      Read2DMatrixCode node = new Read2DMatrixCode();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Sensor) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSensorList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("LightType") && !(this instanceof Thing))
+      to LightType {
+      LightType node = new LightType();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Arrange") && !(this instanceof Thing))
+      to Arrange {
+      Arrange node = new Arrange();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("NumberOfClaws") && !(this instanceof Thing))
+      to NumberOfClaws {
+      NumberOfClaws node = new NumberOfClaws();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("DetectContrast") && !(this instanceof Thing))
+      to DetectContrast {
+      DetectContrast node = new DetectContrast();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Sensor) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSensorList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Arrangement") && !(this instanceof Thing))
+      to Arrangement {
+      Arrangement node = new Arrangement();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("MeasureArea") && !(this instanceof Thing))
+      to MeasureArea {
+      MeasureArea node = new MeasureArea();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Sensor) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSensorList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Roll") && !(this instanceof Thing))
+      to Roll {
+      Roll node = new Roll();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("MaxMeasurementRange") && !(this instanceof Thing))
+      to MaxMeasurementRange {
+      MaxMeasurementRange node = new MaxMeasurementRange();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Hone") && !(this instanceof Thing))
+      to Hone {
+      Hone node = new Hone();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("MeasureTemperature") && !(this instanceof Thing))
+      to MeasureTemperature {
+      MeasureTemperature node = new MeasureTemperature();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Sensor) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSensorList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("DetectColor") && !(this instanceof Thing))
+      to DetectColor {
+      DetectColor node = new DetectColor();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Sensor) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSensorList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("AdjustCurrentToRelease") && !(this instanceof Thing))
+      to AdjustCurrentToRelease {
+      AdjustCurrentToRelease node = new AdjustCurrentToRelease();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof MagnetGripper) {
+          l.add(getElement(i));
+        }
+      }
+      node.setMagnetGripperList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("MagneticSensor") && !(this instanceof Thing))
+      to MagneticSensor {
+      MagneticSensor node = new MagneticSensor();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Skill) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSkillList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Property) {
+          l.add(getElement(i));
+        }
+      }
+      node.setPropertyList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Age") && !(this instanceof Thing))
+      to Age {
+      Age node = new Age();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Reach") && !(this instanceof Thing))
+      to Reach {
+      Reach node = new Reach();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Property") && !(this instanceof Thing))
+      to Property {
+      Property node = new Property();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("MeasureOrientationOfObject") && !(this instanceof Thing))
+      to MeasureOrientationOfObject {
+      MeasureOrientationOfObject node = new MeasureOrientationOfObject();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Sensor) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSensorList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("ManufacturingFunction") && !(this instanceof Thing))
+      to ManufacturingFunction {
+      ManufacturingFunction node = new ManufacturingFunction();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("DetectLuminescence") && !(this instanceof Thing))
+      to DetectLuminescence {
+      DetectLuminescence node = new DetectLuminescence();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Sensor) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSensorList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Read") && !(this instanceof Thing))
+      to Read {
+      Read node = new Read();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Sensor) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSensorList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("VacuumGripper") && !(this instanceof Thing))
+      to VacuumGripper {
+      VacuumGripper node = new VacuumGripper();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Skill) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSkillList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Property) {
+          l.add(getElement(i));
+        }
+      }
+      node.setPropertyList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("OpticLuminescenceScanner") && !(this instanceof Thing))
+      to OpticLuminescenceScanner {
+      OpticLuminescenceScanner node = new OpticLuminescenceScanner();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Skill) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSkillList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Property) {
+          l.add(getElement(i));
+        }
+      }
+      node.setPropertyList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("CheckPresence") && !(this instanceof Thing))
+      to CheckPresence {
+      CheckPresence node = new CheckPresence();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Sensor) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSensorList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("ModifyWorkpieceProperties") && !(this instanceof Thing))
+      to ModifyWorkpieceProperties {
+      ModifyWorkpieceProperties node = new ModifyWorkpieceProperties();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Anneal") && !(this instanceof Thing))
+      to Anneal {
+      Anneal node = new Anneal();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("ReadBarCode") && !(this instanceof Thing))
+      to ReadBarCode {
+      ReadBarCode node = new ReadBarCode();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Sensor) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSensorList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("SmartCamera") && !(this instanceof Thing))
+      to SmartCamera {
+      SmartCamera node = new SmartCamera();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Skill) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSkillList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Property) {
+          l.add(getElement(i));
+        }
+      }
+      node.setPropertyList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("MeasureAngle") && !(this instanceof Thing))
+      to MeasureAngle {
+      MeasureAngle node = new MeasureAngle();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Sensor) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSensorList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Extrude") && !(this instanceof Thing))
+      to Extrude {
+      Extrude node = new Extrude();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("CoordinateReferenceSystem") && !(this instanceof Thing))
+      to CoordinateReferenceSystem {
+      CoordinateReferenceSystem node = new CoordinateReferenceSystem();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("SpecialKinematicRobot") && !(this instanceof Thing))
+      to SpecialKinematicRobot {
+      SpecialKinematicRobot node = new SpecialKinematicRobot();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Skill) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSkillList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Property) {
+          l.add(getElement(i));
+        }
+      }
+      node.setPropertyList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Cast") && !(this instanceof Thing))
+      to Cast {
+      Cast node = new Cast();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Crush") && !(this instanceof Thing))
+      to Crush {
+      Crush node = new Crush();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("BlobAnalysis") && !(this instanceof Thing))
+      to BlobAnalysis {
+      BlobAnalysis node = new BlobAnalysis();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Sensor) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSensorList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("LaserScanner2D") && !(this instanceof Thing))
+      to LaserScanner2D {
+      LaserScanner2D node = new LaserScanner2D();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Skill) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSkillList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Property) {
+          l.add(getElement(i));
+        }
+      }
+      node.setPropertyList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Store") && !(this instanceof Thing))
+      to Store {
+      Store node = new Store();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("AdjustVacuumToRelease") && !(this instanceof Thing))
+      to AdjustVacuumToRelease {
+      AdjustVacuumToRelease node = new AdjustVacuumToRelease();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Forge") && !(this instanceof Thing))
+      to Forge {
+      Forge node = new Forge();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("SensorFunction") && !(this instanceof Thing))
+      to SensorFunction {
+      SensorFunction node = new SensorFunction();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Sensor) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSensorList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("MeasureSpeed") && !(this instanceof Thing))
+      to MeasureSpeed {
+      MeasureSpeed node = new MeasureSpeed();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Sensor) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSensorList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Pan") && !(this instanceof Thing))
+      to Pan {
+      Pan node = new Pan();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Solder") && !(this instanceof Thing))
+      to Solder {
+      Solder node = new Solder();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Rub") && !(this instanceof Thing))
+      to Rub {
+      Rub node = new Rub();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("ClassifyObject") && !(this instanceof Thing))
+      to ClassifyObject {
+      ClassifyObject node = new ClassifyObject();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Sensor) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSensorList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("MeasureTorque") && !(this instanceof Thing))
+      to MeasureTorque {
+      MeasureTorque node = new MeasureTorque();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Sensor) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSensorList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("FingerGripper") && !(this instanceof Thing))
+      to FingerGripper {
+      FingerGripper node = new FingerGripper();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Skill) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSkillList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Property) {
+          l.add(getElement(i));
+        }
+      }
+      node.setPropertyList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Worm") && !(this instanceof Thing))
+      to Worm {
+      Worm node = new Worm();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("MountedDeviceOrientation") && !(this instanceof Thing))
+      to MountedDeviceOrientation {
+      MountedDeviceOrientation node = new MountedDeviceOrientation();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("ResponseTime") && !(this instanceof Thing))
+      to ResponseTime {
+      ResponseTime node = new ResponseTime();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("PlaybackCtrl") && !(this instanceof Thing))
+      to PlaybackCtrl {
+      PlaybackCtrl node = new PlaybackCtrl();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("DiameterOfGripper") && !(this instanceof Thing))
+      to DiameterOfGripper {
+      DiameterOfGripper node = new DiameterOfGripper();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Count") && !(this instanceof Thing))
+      to Count {
+      Count node = new Count();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Sensor) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSensorList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("DetectObject") && !(this instanceof Thing))
+      to DetectObject {
+      DetectObject node = new DetectObject();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Sensor) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSensorList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("MaximumVacuum") && !(this instanceof Thing))
+      to MaximumVacuum {
+      MaximumVacuum node = new MaximumVacuum();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Skill") && !(this instanceof Thing))
+      to Skill {
+      Skill node = new Skill();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Stretch_Form") && !(this instanceof Thing))
+      to Stretch_Form {
+      Stretch_Form node = new Stretch_Form();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("NumberOfFingers") && !(this instanceof Thing))
+      to NumberOfFingers {
+      NumberOfFingers node = new NumberOfFingers();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("CloseClaws") && !(this instanceof Thing))
+      to CloseClaws {
+      CloseClaws node = new CloseClaws();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("TypeOfMagnet") && !(this instanceof Thing))
+      to TypeOfMagnet {
+      TypeOfMagnet node = new TypeOfMagnet();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("WheelEncoder") && !(this instanceof Thing))
+      to WheelEncoder {
+      WheelEncoder node = new WheelEncoder();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Skill) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSkillList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Property) {
+          l.add(getElement(i));
+        }
+      }
+      node.setPropertyList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("CycleTime") && !(this instanceof Thing))
+      to CycleTime {
+      CycleTime node = new CycleTime();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Weld") && !(this instanceof Thing))
+      to Weld {
+      Weld node = new Weld();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("ElectricalInterface") && !(this instanceof Thing))
+      to ElectricalInterface {
+      ElectricalInterface node = new ElectricalInterface();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("DetectCollision") && !(this instanceof Thing))
+      to DetectCollision {
+      DetectCollision node = new DetectCollision();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Sensor) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSensorList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Accuracy") && !(this instanceof Thing))
+      to Accuracy {
+      Accuracy node = new Accuracy();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("MinVoltageSupply") && !(this instanceof Thing))
+      to MinVoltageSupply {
+      MinVoltageSupply node = new MinVoltageSupply();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Temper") && !(this instanceof Thing))
+      to Temper {
+      Temper node = new Temper();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("MainFunction") && !(this instanceof Thing))
+      to MainFunction {
+      MainFunction node = new MainFunction();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Lap") && !(this instanceof Thing))
+      to Lap {
+      Lap node = new Lap();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("PhysicalPropertiesGripper") && !(this instanceof Thing))
+      to PhysicalPropertiesGripper {
+      PhysicalPropertiesGripper node = new PhysicalPropertiesGripper();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("OpticSwitch") && !(this instanceof Thing))
+      to OpticSwitch {
+      OpticSwitch node = new OpticSwitch();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Skill) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSkillList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Property) {
+          l.add(getElement(i));
+        }
+      }
+      node.setPropertyList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("AdjustVacuumToGrip") && !(this instanceof Thing))
+      to AdjustVacuumToGrip {
+      AdjustVacuumToGrip node = new AdjustVacuumToGrip();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Width") && !(this instanceof Thing))
+      to Width {
+      Width node = new Width();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Varnish") && !(this instanceof Thing))
+      to Varnish {
+      Varnish node = new Varnish();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Sensor") && !(this instanceof Thing))
+      to Sensor {
+      Sensor node = new Sensor();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Skill) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSkillList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Property) {
+          l.add(getElement(i));
+        }
+      }
+      node.setPropertyList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("OpticColorSensor") && !(this instanceof Thing))
+      to OpticColorSensor {
+      OpticColorSensor node = new OpticColorSensor();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Skill) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSkillList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Property) {
+          l.add(getElement(i));
+        }
+      }
+      node.setPropertyList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("AdditionalFunction") && !(this instanceof Thing))
+      to AdditionalFunction {
+      AdditionalFunction node = new AdditionalFunction();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("BarcodeReader") && !(this instanceof Thing))
+      to BarcodeReader {
+      BarcodeReader node = new BarcodeReader();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Skill) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSkillList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Property) {
+          l.add(getElement(i));
+        }
+      }
+      node.setPropertyList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("DiagnosticFunction") && !(this instanceof Thing))
+      to DiagnosticFunction {
+      DiagnosticFunction node = new DiagnosticFunction();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("CloseFingers") && !(this instanceof Thing))
+      to CloseFingers {
+      CloseFingers node = new CloseFingers();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Saw") && !(this instanceof Thing))
+      to Saw {
+      Saw node = new Saw();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("OpenFingers") && !(this instanceof Thing))
+      to OpenFingers {
+      OpenFingers node = new OpenFingers();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Broach") && !(this instanceof Thing))
+      to Broach {
+      Broach node = new Broach();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Coat") && !(this instanceof Thing))
+      to Coat {
+      Coat node = new Coat();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("TypeOfActuation") && !(this instanceof Thing))
+      to TypeOfActuation {
+      TypeOfActuation node = new TypeOfActuation();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Drill") && !(this instanceof Thing))
+      to Drill {
+      Drill node = new Drill();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("DegreesOfFreedom") && !(this instanceof Thing))
+      to DegreesOfFreedom {
+      DegreesOfFreedom node = new DegreesOfFreedom();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Bend") && !(this instanceof Thing))
+      to Bend {
+      Bend node = new Bend();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("MeasureAcceleration") && !(this instanceof Thing))
+      to MeasureAcceleration {
+      MeasureAcceleration node = new MeasureAcceleration();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Sensor) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSensorList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Orient") && !(this instanceof Thing))
+      to Orient {
+      Orient node = new Orient();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("File") && !(this instanceof Thing))
+      to File {
+      File node = new File();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("WormDiameter") && !(this instanceof Thing))
+      to WormDiameter {
+      WormDiameter node = new WormDiameter();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Length") && !(this instanceof Thing))
+      to Length {
+      Length node = new Length();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("WorkFrame") && !(this instanceof Thing))
+      to WorkFrame {
+      WorkFrame node = new WorkFrame();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Separate") && !(this instanceof Thing))
+      to Separate {
+      Separate node = new Separate();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("CollectStatisticalData") && !(this instanceof Thing))
+      to CollectStatisticalData {
+      CollectStatisticalData node = new CollectStatisticalData();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("MeasureMotionOfObject") && !(this instanceof Thing))
+      to MeasureMotionOfObject {
+      MeasureMotionOfObject node = new MeasureMotionOfObject();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Sensor) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSensorList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("OpticProximitySwitch") && !(this instanceof Thing))
+      to OpticProximitySwitch {
+      OpticProximitySwitch node = new OpticProximitySwitch();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Skill) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSkillList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Property) {
+          l.add(getElement(i));
+        }
+      }
+      node.setPropertyList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("SwitchingFrequency") && !(this instanceof Thing))
+      to SwitchingFrequency {
+      SwitchingFrequency node = new SwitchingFrequency();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("PhysicalPropertiesSensor") && !(this instanceof Thing))
+      to PhysicalPropertiesSensor {
+      PhysicalPropertiesSensor node = new PhysicalPropertiesSensor();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("OpticDistanceSensor") && !(this instanceof Thing))
+      to OpticDistanceSensor {
+      OpticDistanceSensor node = new OpticDistanceSensor();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Skill) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSkillList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Property) {
+          l.add(getElement(i));
+        }
+      }
+      node.setPropertyList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("NumericalCtrl") && !(this instanceof Thing))
+      to NumericalCtrl {
+      NumericalCtrl node = new NumericalCtrl();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Calibrate") && !(this instanceof Thing))
+      to Calibrate {
+      Calibrate node = new Calibrate();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Electroplate") && !(this instanceof Thing))
+      to Electroplate {
+      Electroplate node = new Electroplate();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("PincerGripper") && !(this instanceof Thing))
+      to PincerGripper {
+      PincerGripper node = new PincerGripper();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Skill) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSkillList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Property) {
+          l.add(getElement(i));
+        }
+      }
+      node.setPropertyList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Repeatability") && !(this instanceof Thing))
+      to Repeatability {
+      Repeatability node = new Repeatability();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Detect") && !(this instanceof Thing))
+      to Detect {
+      Detect node = new Detect();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Sensor) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSensorList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Convey") && !(this instanceof Thing))
+      to Convey {
+      Convey node = new Convey();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Circular") && !(this instanceof Thing))
+      to Circular {
+      Circular node = new Circular();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("ShapeOfClaws") && !(this instanceof Thing))
+      to ShapeOfClaws {
+      ShapeOfClaws node = new ShapeOfClaws();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("MaxAmbientTemperature") && !(this instanceof Thing))
+      to MaxAmbientTemperature {
+      MaxAmbientTemperature node = new MaxAmbientTemperature();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Shape") && !(this instanceof Thing))
+      to Shape {
+      Shape node = new Shape();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("SortObjects") && !(this instanceof Thing))
+      to SortObjects {
+      SortObjects node = new SortObjects();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Sensor) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSensorList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("ManipulationAndHandling") && !(this instanceof Thing))
+      to ManipulationAndHandling {
+      ManipulationAndHandling node = new ManipulationAndHandling();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Skill) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSkillList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Property) {
+          l.add(getElement(i));
+        }
+      }
+      node.setPropertyList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Grind") && !(this instanceof Thing))
+      to Grind {
+      Grind node = new Grind();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Classify") && !(this instanceof Thing))
+      to Classify {
+      Classify node = new Classify();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Sensor) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSensorList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("BusInterface") && !(this instanceof Thing))
+      to BusInterface {
+      BusInterface node = new BusInterface();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Cost") && !(this instanceof Thing))
+      to Cost {
+      Cost node = new Cost();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("SetParameterValue") && !(this instanceof Thing))
+      to SetParameterValue {
+      SetParameterValue node = new SetParameterValue();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("StiffnessOfGripper") && !(this instanceof Thing))
+      to StiffnessOfGripper {
+      StiffnessOfGripper node = new StiffnessOfGripper();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Height") && !(this instanceof Thing))
+      to Height {
+      Height node = new Height();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("PhysicalProperties") && !(this instanceof Thing))
+      to PhysicalProperties {
+      PhysicalProperties node = new PhysicalProperties();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Material") && !(this instanceof Thing))
+      to Material {
+      Material node = new Material();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("LoadParameterSet") && !(this instanceof Thing))
+      to LoadParameterSet {
+      LoadParameterSet node = new LoadParameterSet();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("MeasureDistance") && !(this instanceof Thing))
+      to MeasureDistance {
+      MeasureDistance node = new MeasureDistance();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Sensor) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSensorList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("MagnetGripper") && !(this instanceof Thing))
+      to MagnetGripper {
+      MagnetGripper node = new MagnetGripper();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Skill) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSkillList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Property) {
+          l.add(getElement(i));
+        }
+      }
+      node.setPropertyList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("True") && !(this instanceof Thing))
+      to True {
+      True node = new True();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("TorqueForceSensor") && !(this instanceof Thing))
+      to TorqueForceSensor {
+      TorqueForceSensor node = new TorqueForceSensor();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Skill) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSkillList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Property) {
+          l.add(getElement(i));
+        }
+      }
+      node.setPropertyList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Timing") && !(this instanceof Thing))
+      to Timing {
+      Timing node = new Timing();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Flang") && !(this instanceof Thing))
+      to Flang {
+      Flang node = new Flang();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("ReadOpticalCharacters") && !(this instanceof Thing))
+      to ReadOpticalCharacters {
+      ReadOpticalCharacters node = new ReadOpticalCharacters();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Sensor) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSensorList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Diameter") && !(this instanceof Thing))
+      to Diameter {
+      Diameter node = new Diameter();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Bolt") && !(this instanceof Thing))
+      to Bolt {
+      Bolt node = new Bolt();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Gripper") && !(this instanceof Thing))
+      to Gripper {
+      Gripper node = new Gripper();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Skill) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSkillList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Property) {
+          l.add(getElement(i));
+        }
+      }
+      node.setPropertyList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("StorePartlyOrdered") && !(this instanceof Thing))
+      to StorePartlyOrdered {
+      StorePartlyOrdered node = new StorePartlyOrdered();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("PhysicalInterface") && !(this instanceof Thing))
+      to PhysicalInterface {
+      PhysicalInterface node = new PhysicalInterface();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Deep_Draw") && !(this instanceof Thing))
+      to Deep_Draw {
+      Deep_Draw node = new Deep_Draw();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Glue") && !(this instanceof Thing))
+      to Glue {
+      Glue node = new Glue();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("ManipulationAndHandlingFunction") && !(this instanceof Thing))
+      to ManipulationAndHandlingFunction {
+      ManipulationAndHandlingFunction node = new ManipulationAndHandlingFunction();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("OpenClaws") && !(this instanceof Thing))
+      to OpenClaws {
+      OpenClaws node = new OpenClaws();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("VisionSensor") && !(this instanceof Thing))
+      to VisionSensor {
+      VisionSensor node = new VisionSensor();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Skill) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSkillList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Property) {
+          l.add(getElement(i));
+        }
+      }
+      node.setPropertyList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("AsFastAsPossible") && !(this instanceof Thing))
+      to AsFastAsPossible {
+      AsFastAsPossible node = new AsFastAsPossible();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Pass") && !(this instanceof Thing))
+      to Pass {
+      Pass node = new Pass();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Form") && !(this instanceof Thing))
+      to Form {
+      Form node = new Form();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("TypeOfVacuum") && !(this instanceof Thing))
+      to TypeOfVacuum {
+      TypeOfVacuum node = new TypeOfVacuum();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Join") && !(this instanceof Thing))
+      to Join {
+      Join node = new Join();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Resolution") && !(this instanceof Thing))
+      to Resolution {
+      Resolution node = new Resolution();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("CartesianRobot") && !(this instanceof Thing))
+      to CartesianRobot {
+      CartesianRobot node = new CartesianRobot();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Skill) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSkillList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Property) {
+          l.add(getElement(i));
+        }
+      }
+      node.setPropertyList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("MeasureForce") && !(this instanceof Thing))
+      to MeasureForce {
+      MeasureForce node = new MeasureForce();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Sensor) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSensorList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("OpticContrastScanner") && !(this instanceof Thing))
+      to OpticContrastScanner {
+      OpticContrastScanner node = new OpticContrastScanner();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Skill) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSkillList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Property) {
+          l.add(getElement(i));
+        }
+      }
+      node.setPropertyList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("CheckSurfaceForIrregularities") && !(this instanceof Thing))
+      to CheckSurfaceForIrregularities {
+      CheckSurfaceForIrregularities node = new CheckSurfaceForIrregularities();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Sensor) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSensorList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Powder_coat") && !(this instanceof Thing))
+      to Powder_coat {
+      Powder_coat node = new Powder_coat();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("LightSpotSize") && !(this instanceof Thing))
+      to LightSpotSize {
+      LightSpotSize node = new LightSpotSize();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Assemble") && !(this instanceof Thing))
+      to Assemble {
+      Assemble node = new Assemble();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("MaxLiftWeight") && !(this instanceof Thing))
+      to MaxLiftWeight {
+      MaxLiftWeight node = new MaxLiftWeight();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Part") && !(this instanceof Thing))
+      to Part {
+      Part node = new Part();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("MeasurePositionOfObject") && !(this instanceof Thing))
+      to MeasurePositionOfObject {
+      MeasurePositionOfObject node = new MeasurePositionOfObject();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Sensor) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSensorList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("GeneralParallelGripper") && !(this instanceof Thing))
+      to GeneralParallelGripper {
+      GeneralParallelGripper node = new GeneralParallelGripper();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Skill) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSkillList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Property) {
+          l.add(getElement(i));
+        }
+      }
+      node.setPropertyList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("MinMeasurementRange") && !(this instanceof Thing))
+      to MinMeasurementRange {
+      MinMeasurementRange node = new MinMeasurementRange();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("MaxCurrentConsumption") && !(this instanceof Thing))
+      to MaxCurrentConsumption {
+      MaxCurrentConsumption node = new MaxCurrentConsumption();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("MountedDevicePosition") && !(this instanceof Thing))
+      to MountedDevicePosition {
+      MountedDevicePosition node = new MountedDevicePosition();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Thermal_Separate") && !(this instanceof Thing))
+      to Thermal_Separate {
+      Thermal_Separate node = new Thermal_Separate();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("NumberOfMovableClaws") && !(this instanceof Thing))
+      to NumberOfMovableClaws {
+      NumberOfMovableClaws node = new NumberOfMovableClaws();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("ToolInterface") && !(this instanceof Thing))
+      to ToolInterface {
+      ToolInterface node = new ToolInterface();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Secure") && !(this instanceof Thing))
+      to Secure {
+      Secure node = new Secure();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Divide") && !(this instanceof Thing))
+      to Divide {
+      Divide node = new Divide();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("LaserClass") && !(this instanceof Thing))
+      to LaserClass {
+      LaserClass node = new LaserClass();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Mold") && !(this instanceof Thing))
+      to Mold {
+      Mold node = new Mold();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Weight") && !(this instanceof Thing))
+      to Weight {
+      Weight node = new Weight();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Merge") && !(this instanceof Thing))
+      to Merge {
+      Merge node = new Merge();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Identifier") && !(this instanceof Thing))
+      to Identifier {
+      Identifier node = new Identifier();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Clinch") && !(this instanceof Thing))
+      to Clinch {
+      Clinch node = new Clinch();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("ImageAnalysis") && !(this instanceof Thing))
+      to ImageAnalysis {
+      ImageAnalysis node = new ImageAnalysis();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Sensor) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSensorList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Fill") && !(this instanceof Thing))
+      to Fill {
+      Fill node = new Fill();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("TactileProximitySwitch") && !(this instanceof Thing))
+      to TactileProximitySwitch {
+      TactileProximitySwitch node = new TactileProximitySwitch();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Skill) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSkillList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Property) {
+          l.add(getElement(i));
+        }
+      }
+      node.setPropertyList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("WireDrawEncoder") && !(this instanceof Thing))
+      to WireDrawEncoder {
+      WireDrawEncoder node = new WireDrawEncoder();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Skill) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSkillList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Property) {
+          l.add(getElement(i));
+        }
+      }
+      node.setPropertyList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Precision") && !(this instanceof Thing))
+      to Precision {
+      Precision node = new Precision();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Rivet") && !(this instanceof Thing))
+      to Rivet {
+      Rivet node = new Rivet();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Communication") && !(this instanceof Thing))
+      to Communication {
+      Communication node = new Communication();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Mill") && !(this instanceof Thing))
+      to Mill {
+      Mill node = new Mill();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("IntelligentCtrl") && !(this instanceof Thing))
+      to IntelligentCtrl {
+      IntelligentCtrl node = new IntelligentCtrl();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Grasp") && !(this instanceof Thing))
+      to Grasp {
+      Grasp node = new Grasp();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Branch") && !(this instanceof Thing))
+      to Branch {
+      Branch node = new Branch();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("ElectricalConnector") && !(this instanceof Thing))
+      to ElectricalConnector {
+      ElectricalConnector node = new ElectricalConnector();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("SaveParameterSet") && !(this instanceof Thing))
+      to SaveParameterSet {
+      SaveParameterSet node = new SaveParameterSet();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("MaxForce") && !(this instanceof Thing))
+      to MaxForce {
+      MaxForce node = new MaxForce();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Thrust") && !(this instanceof Thing))
+      to Thrust {
+      Thrust node = new Thrust();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("CircularParallelGripper") && !(this instanceof Thing))
+      to CircularParallelGripper {
+      CircularParallelGripper node = new CircularParallelGripper();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Skill) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSkillList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Property) {
+          l.add(getElement(i));
+        }
+      }
+      node.setPropertyList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Sinter") && !(this instanceof Thing))
+      to Sinter {
+      Sinter node = new Sinter();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("SimpleControl") && !(this instanceof Thing))
+      to SimpleControl {
+      SimpleControl node = new SimpleControl();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Reachability") && !(this instanceof Thing))
+      to Reachability {
+      Reachability node = new Reachability();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("OpticReflexSwitch") && !(this instanceof Thing))
+      to OpticReflexSwitch {
+      OpticReflexSwitch node = new OpticReflexSwitch();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Skill) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSkillList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Property) {
+          l.add(getElement(i));
+        }
+      }
+      node.setPropertyList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Fold") && !(this instanceof Thing))
+      to Fold {
+      Fold node = new Fold();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("PerformSelfTest") && !(this instanceof Thing))
+      to PerformSelfTest {
+      PerformSelfTest node = new PerformSelfTest();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("LightGrid") && !(this instanceof Thing))
+      to LightGrid {
+      LightGrid node = new LightGrid();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Skill) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSkillList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Property) {
+          l.add(getElement(i));
+        }
+      }
+      node.setPropertyList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Lathe") && !(this instanceof Thing))
+      to Lathe {
+      Lathe node = new Lathe();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("InductiveSensor") && !(this instanceof Thing))
+      to InductiveSensor {
+      InductiveSensor node = new InductiveSensor();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Skill) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSkillList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Property) {
+          l.add(getElement(i));
+        }
+      }
+      node.setPropertyList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("ModifyAmount") && !(this instanceof Thing))
+      to ModifyAmount {
+      ModifyAmount node = new ModifyAmount();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Press") && !(this instanceof Thing))
+      to Press {
+      Press node = new Press();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("DecompressImageData") && !(this instanceof Thing))
+      to DecompressImageData {
+      DecompressImageData node = new DecompressImageData();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Sensor) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSensorList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("CompressImageData") && !(this instanceof Thing))
+      to CompressImageData {
+      CompressImageData node = new CompressImageData();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Sensor) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSensorList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Hot_galvanise") && !(this instanceof Thing))
+      to Hot_galvanise {
+      Hot_galvanise node = new Hot_galvanise();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Position") && !(this instanceof Thing))
+      to Position {
+      Position node = new Position();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("OpticSensor") && !(this instanceof Thing))
+      to OpticSensor {
+      OpticSensor node = new OpticSensor();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Skill) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSkillList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Property) {
+          l.add(getElement(i));
+        }
+      }
+      node.setPropertyList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("OpticThroughBeamSwitch") && !(this instanceof Thing))
+      to OpticThroughBeamSwitch {
+      OpticThroughBeamSwitch node = new OpticThroughBeamSwitch();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Skill) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSkillList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Property) {
+          l.add(getElement(i));
+        }
+      }
+      node.setPropertyList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("LinearEncoder") && !(this instanceof Thing))
+      to LinearEncoder {
+      LinearEncoder node = new LinearEncoder();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Skill) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSkillList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Property) {
+          l.add(getElement(i));
+        }
+      }
+      node.setPropertyList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Displace") && !(this instanceof Thing))
+      to Displace {
+      Displace node = new Displace();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("ArticulatedRobot") && !(this instanceof Thing))
+      to ArticulatedRobot {
+      ArticulatedRobot node = new ArticulatedRobot();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Skill) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSkillList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Property) {
+          l.add(getElement(i));
+        }
+      }
+      node.setPropertyList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Turn") && !(this instanceof Thing))
+      to Turn {
+      Turn node = new Turn();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Check") && !(this instanceof Thing))
+      to Check {
+      Check node = new Check();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Sensor) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSensorList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Payload") && !(this instanceof Thing))
+      to Payload {
+      Payload node = new Payload();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("TransformImage") && !(this instanceof Thing))
+      to TransformImage {
+      TransformImage node = new TransformImage();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Sensor) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSensorList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("ParallelGripper") && !(this instanceof Thing))
+      to ParallelGripper {
+      ParallelGripper node = new ParallelGripper();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Skill) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSkillList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Property) {
+          l.add(getElement(i));
+        }
+      }
+      node.setPropertyList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("InsideOrOutsidePicking") && !(this instanceof Thing))
+      to InsideOrOutsidePicking {
+      InsideOrOutsidePicking node = new InsideOrOutsidePicking();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Electro_discharge_machine") && !(this instanceof Thing))
+      to Electro_discharge_machine {
+      Electro_discharge_machine node = new Electro_discharge_machine();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("MaxVoltageSupply") && !(this instanceof Thing))
+      to MaxVoltageSupply {
+      MaxVoltageSupply node = new MaxVoltageSupply();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("ControlSystem") && !(this instanceof Thing))
+      to ControlSystem {
+      ControlSystem node = new ControlSystem();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Assign") && !(this instanceof Thing))
+      to Assign {
+      Assign node = new Assign();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Task") && !(this instanceof Thing))
+      to Task {
+      Task node = new Task();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Robot") && !(this instanceof Thing))
+      to Robot {
+      Robot node = new Robot();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Skill) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSkillList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Property) {
+          l.add(getElement(i));
+        }
+      }
+      node.setPropertyList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("PathVelocityFluctuation") && !(this instanceof Thing))
+      to PathVelocityFluctuation {
+      PathVelocityFluctuation node = new PathVelocityFluctuation();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("CommunicationProtocol") && !(this instanceof Thing))
+      to CommunicationProtocol {
+      CommunicationProtocol node = new CommunicationProtocol();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("LineParallelGripper") && !(this instanceof Thing))
+      to LineParallelGripper {
+      LineParallelGripper node = new LineParallelGripper();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Skill) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSkillList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Property) {
+          l.add(getElement(i));
+        }
+      }
+      node.setPropertyList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("MaxScanAngle") && !(this instanceof Thing))
+      to MaxScanAngle {
+      MaxScanAngle node = new MaxScanAngle();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("UltrasonicDistanceSensor") && !(this instanceof Thing))
+      to UltrasonicDistanceSensor {
+      UltrasonicDistanceSensor node = new UltrasonicDistanceSensor();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Skill) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSkillList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Property) {
+          l.add(getElement(i));
+        }
+      }
+      node.setPropertyList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("StoreUnOrdered") && !(this instanceof Thing))
+      to StoreUnOrdered {
+      StoreUnOrdered node = new StoreUnOrdered();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Bead") && !(this instanceof Thing))
+      to Bead {
+      Bead node = new Bead();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("MechanicalResistance") && !(this instanceof Thing))
+      to MechanicalResistance {
+      MechanicalResistance node = new MechanicalResistance();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("TypeOfFingers") && !(this instanceof Thing))
+      to TypeOfFingers {
+      TypeOfFingers node = new TypeOfFingers();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Device") && !(this instanceof Thing))
+      to Device {
+      Device node = new Device();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Skill) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSkillList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Property) {
+          l.add(getElement(i));
+        }
+      }
+      node.setPropertyList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("MaterialOfGripper") && !(this instanceof Thing))
+      to MaterialOfGripper {
+      MaterialOfGripper node = new MaterialOfGripper();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("ScaraRobot") && !(this instanceof Thing))
+      to ScaraRobot {
+      ScaraRobot node = new ScaraRobot();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Skill) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSkillList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Property) {
+          l.add(getElement(i));
+        }
+      }
+      node.setPropertyList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("SimpleKinematicRobot") && !(this instanceof Thing))
+      to SimpleKinematicRobot {
+      SimpleKinematicRobot node = new SimpleKinematicRobot();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Skill) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSkillList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Property) {
+          l.add(getElement(i));
+        }
+      }
+      node.setPropertyList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("StoreInOrder") && !(this instanceof Thing))
+      to StoreInOrder {
+      StoreInOrder node = new StoreInOrder();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Cut") && !(this instanceof Thing))
+      to Cut {
+      Cut node = new Cut();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("UltrasonicSensor") && !(this instanceof Thing))
+      to UltrasonicSensor {
+      UltrasonicSensor node = new UltrasonicSensor();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Skill) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSkillList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Property) {
+          l.add(getElement(i));
+        }
+      }
+      node.setPropertyList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("ExtractEdges") && !(this instanceof Thing))
+      to ExtractEdges {
+      ExtractEdges node = new ExtractEdges();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Sensor) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSensorList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("AngleGripper") && !(this instanceof Thing))
+      to AngleGripper {
+      AngleGripper node = new AngleGripper();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Skill) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSkillList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Property) {
+          l.add(getElement(i));
+        }
+      }
+      node.setPropertyList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("CheckPosition") && !(this instanceof Thing))
+      to CheckPosition {
+      CheckPosition node = new CheckPosition();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Sensor) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSensorList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("EncoderSensor") && !(this instanceof Thing))
+      to EncoderSensor {
+      EncoderSensor node = new EncoderSensor();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Skill) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSkillList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Property) {
+          l.add(getElement(i));
+        }
+      }
+      node.setPropertyList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Karthesian") && !(this instanceof Thing))
+      to Karthesian {
+      Karthesian node = new Karthesian();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("ParallelKinematicRobot") && !(this instanceof Thing))
+      to ParallelKinematicRobot {
+      ParallelKinematicRobot node = new ParallelKinematicRobot();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Skill) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSkillList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Property) {
+          l.add(getElement(i));
+        }
+      }
+      node.setPropertyList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("SizeOfGripper") && !(this instanceof Thing))
+      to SizeOfGripper {
+      SizeOfGripper node = new SizeOfGripper();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Measure") && !(this instanceof Thing))
+      to Measure {
+      Measure node = new Measure();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Sensor) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSensorList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("FilterImage") && !(this instanceof Thing))
+      to FilterImage {
+      FilterImage node = new FilterImage();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Sensor) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSensorList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("SegmentImage") && !(this instanceof Thing))
+      to SegmentImage {
+      SegmentImage node = new SegmentImage();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Sensor) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSensorList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Unify") && !(this instanceof Thing))
+      to Unify {
+      Unify node = new Unify();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("PowerConsumption") && !(this instanceof Thing))
+      to PowerConsumption {
+      PowerConsumption node = new PowerConsumption();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("ElasticFingerGripper") && !(this instanceof Thing))
+      to ElasticFingerGripper {
+      ElasticFingerGripper node = new ElasticFingerGripper();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Skill) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSkillList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Property) {
+          l.add(getElement(i));
+        }
+      }
+      node.setPropertyList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("NumberOfJoints") && !(this instanceof Thing))
+      to NumberOfJoints {
+      NumberOfJoints node = new NumberOfJoints();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("MeasureDiameter") && !(this instanceof Thing))
+      to MeasureDiameter {
+      MeasureDiameter node = new MeasureDiameter();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Sensor) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSensorList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("ElectrolyticSegregate") && !(this instanceof Thing))
+      to ElectrolyticSegregate {
+      ElectrolyticSegregate node = new ElectrolyticSegregate();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Move") && !(this instanceof Thing))
+      to Move {
+      Move node = new Move();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("QualityCriteria") && !(this instanceof Thing))
+      to QualityCriteria {
+      QualityCriteria node = new QualityCriteria();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("MinAmbientTemperature") && !(this instanceof Thing))
+      to MinAmbientTemperature {
+      MinAmbientTemperature node = new MinAmbientTemperature();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Feed") && !(this instanceof Thing))
+      to Feed {
+      Feed node = new Feed();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("InductiveProximitySwitch") && !(this instanceof Thing))
+      to InductiveProximitySwitch {
+      InductiveProximitySwitch node = new InductiveProximitySwitch();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Skill) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSkillList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Property) {
+          l.add(getElement(i));
+        }
+      }
+      node.setPropertyList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Scan") && !(this instanceof Thing))
+      to Scan {
+      Scan node = new Scan();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Sensor) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSensorList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("ScanningDistance") && !(this instanceof Thing))
+      to ScanningDistance {
+      ScanningDistance node = new ScanningDistance();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Manufacturing") && !(this instanceof Thing))
+      to Manufacturing {
+      Manufacturing node = new Manufacturing();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Skill) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSkillList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Property) {
+          l.add(getElement(i));
+        }
+      }
+      node.setPropertyList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Reset") && !(this instanceof Thing))
+      to Reset {
+      Reset node = new Reset();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Release") && !(this instanceof Thing))
+      to Release {
+      Release node = new Release();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("JointFingerGripper") && !(this instanceof Thing))
+      to JointFingerGripper {
+      JointFingerGripper node = new JointFingerGripper();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Skill) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSkillList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Property) {
+          l.add(getElement(i));
+        }
+      }
+      node.setPropertyList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("EnclosureRatingIP") && !(this instanceof Thing))
+      to EnclosureRatingIP {
+      EnclosureRatingIP node = new EnclosureRatingIP();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("MeasureVolume") && !(this instanceof Thing))
+      to MeasureVolume {
+      MeasureVolume node = new MeasureVolume();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Sensor) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSensorList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("TactileSensor") && !(this instanceof Thing))
+      to TactileSensor {
+      TactileSensor node = new TactileSensor();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Skill) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSkillList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Property) {
+          l.add(getElement(i));
+        }
+      }
+      node.setPropertyList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("CalibrateImage") && !(this instanceof Thing))
+      to CalibrateImage {
+      CalibrateImage node = new CalibrateImage();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Sensor) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSensorList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("Plane") && !(this instanceof Thing))
+      to Plane {
+      Plane node = new Plane();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("PhysicalPropertiesRobot") && !(this instanceof Thing))
+      to PhysicalPropertiesRobot {
+      PhysicalPropertiesRobot node = new PhysicalPropertiesRobot();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("FieldOfView") && !(this instanceof Thing))
+      to FieldOfView {
+      FieldOfView node = new FieldOfView();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("WorkCoordinates") && !(this instanceof Thing))
+      to WorkCoordinates {
+      WorkCoordinates node = new WorkCoordinates();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("MechanicalConnector") && !(this instanceof Thing))
+      to MechanicalConnector {
+      MechanicalConnector node = new MechanicalConnector();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("MaxLiftWay") && !(this instanceof Thing))
+      to MaxLiftWay {
+      MaxLiftWay node = new MaxLiftWay();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("CapacitveSensor") && !(this instanceof Thing))
+      to CapacitveSensor {
+      CapacitveSensor node = new CapacitveSensor();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Skill) {
+          l.add(getElement(i));
+        }
+      }
+      node.setSkillList(l);
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Property) {
+          l.add(getElement(i));
+        }
+      }
+      node.setPropertyList(l);
+      return node;
+    }
+  }
+  rewrite ComplexElement {
+    when (getOwlIdentifier().getIDENTIFIER().equals("AdjustCurrentToGrip") && !(this instanceof Thing))
+      to AdjustCurrentToGrip {
+      AdjustCurrentToGrip node = new AdjustCurrentToGrip();
+      node.setOwlIdentifier(getOwlIdentifier());
+      node.setAttributeList(getAttributeList());
+      node.setElementList(getElementList());
+      List l;
+      l = new List();
+      for (int i=0; i<getNumElement(); i++) {
+        if (getElement(i) instanceof Device) {
+          l.add(getElement(i));
+        }
+      }
+      node.setDeviceList(l);
+      return node;
+    }
+  }
+}
+
+aspect PrettyPrinter {
+  public void ASTNode.prettyPrint(String indent, PrintStream pStream) {
+    for (int i=0; i<getNumChild(); i++) {
+      getChild(i).prettyPrint(indent,pStream);
+    }
+  }
+
+  public void HexapodRobot.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<HexapodRobot>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</HexapodRobot>");
+}
+
+  public void Read2DMatrixCode.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Read2DMatrixCode>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Read2DMatrixCode>");
+}
+
+  public void LightType.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<LightType>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</LightType>");
+}
+
+  public void Arrange.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Arrange>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Arrange>");
+}
+
+  public void NumberOfClaws.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<NumberOfClaws>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</NumberOfClaws>");
+}
+
+  public void DetectContrast.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<DetectContrast>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</DetectContrast>");
+}
+
+  public void Arrangement.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Arrangement>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Arrangement>");
+}
+
+  public void MeasureArea.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<MeasureArea>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</MeasureArea>");
+}
+
+  public void Roll.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Roll>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Roll>");
+}
+
+  public void MaxMeasurementRange.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<MaxMeasurementRange>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</MaxMeasurementRange>");
+}
+
+  public void Hone.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Hone>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Hone>");
+}
+
+  public void MeasureTemperature.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<MeasureTemperature>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</MeasureTemperature>");
+}
+
+  public void DetectColor.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<DetectColor>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</DetectColor>");
+}
+
+  public void AdjustCurrentToRelease.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<AdjustCurrentToRelease>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</AdjustCurrentToRelease>");
+}
+
+  public void MagneticSensor.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<MagneticSensor>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</MagneticSensor>");
+}
+
+  public void Age.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Age>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Age>");
+}
+
+  public void Reach.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Reach>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Reach>");
+}
+
+  public void Property.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Property>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Property>");
+}
+
+  public void MeasureOrientationOfObject.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<MeasureOrientationOfObject>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</MeasureOrientationOfObject>");
+}
+
+  public void ManufacturingFunction.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<ManufacturingFunction>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</ManufacturingFunction>");
+}
+
+  public void DetectLuminescence.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<DetectLuminescence>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</DetectLuminescence>");
+}
+
+  public void Read.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Read>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Read>");
+}
+
+  public void VacuumGripper.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<VacuumGripper>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</VacuumGripper>");
+}
+
+  public void OpticLuminescenceScanner.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<OpticLuminescenceScanner>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</OpticLuminescenceScanner>");
+}
+
+  public void CheckPresence.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<CheckPresence>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</CheckPresence>");
+}
+
+  public void ModifyWorkpieceProperties.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<ModifyWorkpieceProperties>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</ModifyWorkpieceProperties>");
+}
+
+  public void Anneal.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Anneal>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Anneal>");
+}
+
+  public void ReadBarCode.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<ReadBarCode>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</ReadBarCode>");
+}
+
+  public void SmartCamera.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<SmartCamera>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</SmartCamera>");
+}
+
+  public void MeasureAngle.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<MeasureAngle>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</MeasureAngle>");
+}
+
+  public void Extrude.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Extrude>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Extrude>");
+}
+
+  public void CoordinateReferenceSystem.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<CoordinateReferenceSystem>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</CoordinateReferenceSystem>");
+}
+
+  public void SpecialKinematicRobot.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<SpecialKinematicRobot>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</SpecialKinematicRobot>");
+}
+
+  public void Cast.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Cast>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Cast>");
+}
+
+  public void Crush.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Crush>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Crush>");
+}
+
+  public void BlobAnalysis.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<BlobAnalysis>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</BlobAnalysis>");
+}
+
+  public void LaserScanner2D.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<LaserScanner2D>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</LaserScanner2D>");
+}
+
+  public void Store.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Store>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Store>");
+}
+
+  public void AdjustVacuumToRelease.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<AdjustVacuumToRelease>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</AdjustVacuumToRelease>");
+}
+
+  public void Forge.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Forge>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Forge>");
+}
+
+  public void SensorFunction.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<SensorFunction>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</SensorFunction>");
+}
+
+  public void MeasureSpeed.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<MeasureSpeed>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</MeasureSpeed>");
+}
+
+  public void Pan.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Pan>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Pan>");
+}
+
+  public void Solder.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Solder>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Solder>");
+}
+
+  public void Rub.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Rub>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Rub>");
+}
+
+  public void ClassifyObject.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<ClassifyObject>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</ClassifyObject>");
+}
+
+  public void MeasureTorque.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<MeasureTorque>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</MeasureTorque>");
+}
+
+  public void FingerGripper.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<FingerGripper>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</FingerGripper>");
+}
+
+  public void Worm.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Worm>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Worm>");
+}
+
+  public void MountedDeviceOrientation.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<MountedDeviceOrientation>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</MountedDeviceOrientation>");
+}
+
+  public void ResponseTime.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<ResponseTime>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</ResponseTime>");
+}
+
+  public void PlaybackCtrl.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<PlaybackCtrl>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</PlaybackCtrl>");
+}
+
+  public void DiameterOfGripper.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<DiameterOfGripper>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</DiameterOfGripper>");
+}
+
+  public void Count.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Count>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Count>");
+}
+
+  public void DetectObject.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<DetectObject>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</DetectObject>");
+}
+
+  public void MaximumVacuum.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<MaximumVacuum>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</MaximumVacuum>");
+}
+
+  public void Skill.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Skill>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Skill>");
+}
+
+  public void Stretch_Form.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Stretch_Form>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Stretch_Form>");
+}
+
+  public void NumberOfFingers.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<NumberOfFingers>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</NumberOfFingers>");
+}
+
+  public void CloseClaws.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<CloseClaws>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</CloseClaws>");
+}
+
+  public void TypeOfMagnet.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<TypeOfMagnet>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</TypeOfMagnet>");
+}
+
+  public void WheelEncoder.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<WheelEncoder>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</WheelEncoder>");
+}
+
+  public void CycleTime.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<CycleTime>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</CycleTime>");
+}
+
+  public void Weld.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Weld>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Weld>");
+}
+
+  public void ElectricalInterface.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<ElectricalInterface>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</ElectricalInterface>");
+}
+
+  public void DetectCollision.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<DetectCollision>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</DetectCollision>");
+}
+
+  public void Accuracy.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Accuracy>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Accuracy>");
+}
+
+  public void MinVoltageSupply.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<MinVoltageSupply>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</MinVoltageSupply>");
+}
+
+  public void Temper.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Temper>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Temper>");
+}
+
+  public void MainFunction.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<MainFunction>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</MainFunction>");
+}
+
+  public void Lap.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Lap>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Lap>");
+}
+
+  public void PhysicalPropertiesGripper.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<PhysicalPropertiesGripper>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</PhysicalPropertiesGripper>");
+}
+
+  public void OpticSwitch.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<OpticSwitch>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</OpticSwitch>");
+}
+
+  public void AdjustVacuumToGrip.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<AdjustVacuumToGrip>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</AdjustVacuumToGrip>");
+}
+
+  public void Width.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Width>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Width>");
+}
+
+  public void Varnish.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Varnish>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Varnish>");
+}
+
+  public void Sensor.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Sensor>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Sensor>");
+}
+
+  public void OpticColorSensor.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<OpticColorSensor>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</OpticColorSensor>");
+}
+
+  public void AdditionalFunction.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<AdditionalFunction>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</AdditionalFunction>");
+}
+
+  public void BarcodeReader.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<BarcodeReader>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</BarcodeReader>");
+}
+
+  public void DiagnosticFunction.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<DiagnosticFunction>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</DiagnosticFunction>");
+}
+
+  public void CloseFingers.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<CloseFingers>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</CloseFingers>");
+}
+
+  public void Saw.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Saw>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Saw>");
+}
+
+  public void OpenFingers.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<OpenFingers>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</OpenFingers>");
+}
+
+  public void Broach.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Broach>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Broach>");
+}
+
+  public void Coat.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Coat>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Coat>");
+}
+
+  public void TypeOfActuation.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<TypeOfActuation>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</TypeOfActuation>");
+}
+
+  public void Drill.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Drill>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Drill>");
+}
+
+  public void DegreesOfFreedom.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<DegreesOfFreedom>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</DegreesOfFreedom>");
+}
+
+  public void Bend.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Bend>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Bend>");
+}
+
+  public void MeasureAcceleration.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<MeasureAcceleration>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</MeasureAcceleration>");
+}
+
+  public void Orient.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Orient>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Orient>");
+}
+
+  public void File.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<File>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</File>");
+}
+
+  public void WormDiameter.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<WormDiameter>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</WormDiameter>");
+}
+
+  public void Length.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Length>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Length>");
+}
+
+  public void WorkFrame.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<WorkFrame>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</WorkFrame>");
+}
+
+  public void Separate.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Separate>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Separate>");
+}
+
+  public void CollectStatisticalData.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<CollectStatisticalData>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</CollectStatisticalData>");
+}
+
+  public void MeasureMotionOfObject.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<MeasureMotionOfObject>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</MeasureMotionOfObject>");
+}
+
+  public void OpticProximitySwitch.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<OpticProximitySwitch>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</OpticProximitySwitch>");
+}
+
+  public void SwitchingFrequency.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<SwitchingFrequency>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</SwitchingFrequency>");
+}
+
+  public void PhysicalPropertiesSensor.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<PhysicalPropertiesSensor>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</PhysicalPropertiesSensor>");
+}
+
+  public void OpticDistanceSensor.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<OpticDistanceSensor>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</OpticDistanceSensor>");
+}
+
+  public void NumericalCtrl.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<NumericalCtrl>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</NumericalCtrl>");
+}
+
+  public void Calibrate.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Calibrate>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Calibrate>");
+}
+
+  public void Electroplate.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Electroplate>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Electroplate>");
+}
+
+  public void PincerGripper.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<PincerGripper>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</PincerGripper>");
+}
+
+  public void Repeatability.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Repeatability>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Repeatability>");
+}
+
+  public void Detect.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Detect>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Detect>");
+}
+
+  public void Convey.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Convey>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Convey>");
+}
+
+  public void Circular.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Circular>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Circular>");
+}
+
+  public void ShapeOfClaws.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<ShapeOfClaws>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</ShapeOfClaws>");
+}
+
+  public void MaxAmbientTemperature.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<MaxAmbientTemperature>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</MaxAmbientTemperature>");
+}
+
+  public void Shape.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Shape>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Shape>");
+}
+
+  public void SortObjects.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<SortObjects>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</SortObjects>");
+}
+
+  public void ManipulationAndHandling.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<ManipulationAndHandling>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</ManipulationAndHandling>");
+}
+
+  public void Grind.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Grind>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Grind>");
+}
+
+  public void Classify.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Classify>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Classify>");
+}
+
+  public void BusInterface.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<BusInterface>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</BusInterface>");
+}
+
+  public void Cost.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Cost>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Cost>");
+}
+
+  public void SetParameterValue.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<SetParameterValue>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</SetParameterValue>");
+}
+
+  public void StiffnessOfGripper.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<StiffnessOfGripper>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</StiffnessOfGripper>");
+}
+
+  public void Height.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Height>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Height>");
+}
+
+  public void PhysicalProperties.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<PhysicalProperties>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</PhysicalProperties>");
+}
+
+  public void Material.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Material>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Material>");
+}
+
+  public void LoadParameterSet.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<LoadParameterSet>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</LoadParameterSet>");
+}
+
+  public void MeasureDistance.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<MeasureDistance>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</MeasureDistance>");
+}
+
+  public void MagnetGripper.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<MagnetGripper>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</MagnetGripper>");
+}
+
+  public void True.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<True>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</True>");
+}
+
+  public void TorqueForceSensor.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<TorqueForceSensor>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</TorqueForceSensor>");
+}
+
+  public void Timing.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Timing>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Timing>");
+}
+
+  public void Flang.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Flang>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Flang>");
+}
+
+  public void ReadOpticalCharacters.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<ReadOpticalCharacters>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</ReadOpticalCharacters>");
+}
+
+  public void Diameter.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Diameter>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Diameter>");
+}
+
+  public void Bolt.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Bolt>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Bolt>");
+}
+
+  public void Gripper.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Gripper>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Gripper>");
+}
+
+  public void StorePartlyOrdered.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<StorePartlyOrdered>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</StorePartlyOrdered>");
+}
+
+  public void PhysicalInterface.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<PhysicalInterface>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</PhysicalInterface>");
+}
+
+  public void Deep_Draw.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Deep_Draw>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Deep_Draw>");
+}
+
+  public void Glue.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Glue>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Glue>");
+}
+
+  public void ManipulationAndHandlingFunction.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<ManipulationAndHandlingFunction>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</ManipulationAndHandlingFunction>");
+}
+
+  public void OpenClaws.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<OpenClaws>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</OpenClaws>");
+}
+
+  public void VisionSensor.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<VisionSensor>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</VisionSensor>");
+}
+
+  public void AsFastAsPossible.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<AsFastAsPossible>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</AsFastAsPossible>");
+}
+
+  public void Pass.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Pass>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Pass>");
+}
+
+  public void Form.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Form>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Form>");
+}
+
+  public void TypeOfVacuum.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<TypeOfVacuum>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</TypeOfVacuum>");
+}
+
+  public void Join.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Join>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Join>");
+}
+
+  public void Resolution.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Resolution>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Resolution>");
+}
+
+  public void CartesianRobot.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<CartesianRobot>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</CartesianRobot>");
+}
+
+  public void MeasureForce.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<MeasureForce>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</MeasureForce>");
+}
+
+  public void OpticContrastScanner.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<OpticContrastScanner>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</OpticContrastScanner>");
+}
+
+  public void CheckSurfaceForIrregularities.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<CheckSurfaceForIrregularities>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</CheckSurfaceForIrregularities>");
+}
+
+  public void Powder_coat.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Powder_coat>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Powder_coat>");
+}
+
+  public void LightSpotSize.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<LightSpotSize>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</LightSpotSize>");
+}
+
+  public void Assemble.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Assemble>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Assemble>");
+}
+
+  public void MaxLiftWeight.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<MaxLiftWeight>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</MaxLiftWeight>");
+}
+
+  public void Part.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Part>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Part>");
+}
+
+  public void MeasurePositionOfObject.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<MeasurePositionOfObject>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</MeasurePositionOfObject>");
+}
+
+  public void GeneralParallelGripper.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<GeneralParallelGripper>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</GeneralParallelGripper>");
+}
+
+  public void MinMeasurementRange.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<MinMeasurementRange>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</MinMeasurementRange>");
+}
+
+  public void MaxCurrentConsumption.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<MaxCurrentConsumption>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</MaxCurrentConsumption>");
+}
+
+  public void MountedDevicePosition.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<MountedDevicePosition>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</MountedDevicePosition>");
+}
+
+  public void Thermal_Separate.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Thermal_Separate>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Thermal_Separate>");
+}
+
+  public void NumberOfMovableClaws.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<NumberOfMovableClaws>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</NumberOfMovableClaws>");
+}
+
+  public void ToolInterface.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<ToolInterface>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</ToolInterface>");
+}
+
+  public void Secure.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Secure>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Secure>");
+}
+
+  public void Divide.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Divide>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Divide>");
+}
+
+  public void LaserClass.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<LaserClass>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</LaserClass>");
+}
+
+  public void Mold.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Mold>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Mold>");
+}
+
+  public void Weight.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Weight>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Weight>");
+}
+
+  public void Merge.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Merge>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Merge>");
+}
+
+  public void Identifier.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Identifier>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Identifier>");
+}
+
+  public void Clinch.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Clinch>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Clinch>");
+}
+
+  public void ImageAnalysis.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<ImageAnalysis>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</ImageAnalysis>");
+}
+
+  public void Fill.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Fill>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Fill>");
+}
+
+  public void TactileProximitySwitch.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<TactileProximitySwitch>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</TactileProximitySwitch>");
+}
+
+  public void WireDrawEncoder.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<WireDrawEncoder>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</WireDrawEncoder>");
+}
+
+  public void Precision.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Precision>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Precision>");
+}
+
+  public void Rivet.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Rivet>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Rivet>");
+}
+
+  public void Communication.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Communication>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Communication>");
+}
+
+  public void Mill.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Mill>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Mill>");
+}
+
+  public void IntelligentCtrl.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<IntelligentCtrl>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</IntelligentCtrl>");
+}
+
+  public void Grasp.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Grasp>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Grasp>");
+}
+
+  public void Branch.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Branch>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Branch>");
+}
+
+  public void ElectricalConnector.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<ElectricalConnector>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</ElectricalConnector>");
+}
+
+  public void SaveParameterSet.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<SaveParameterSet>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</SaveParameterSet>");
+}
+
+  public void MaxForce.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<MaxForce>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</MaxForce>");
+}
+
+  public void Thrust.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Thrust>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Thrust>");
+}
+
+  public void CircularParallelGripper.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<CircularParallelGripper>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</CircularParallelGripper>");
+}
+
+  public void Sinter.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Sinter>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Sinter>");
+}
+
+  public void SimpleControl.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<SimpleControl>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</SimpleControl>");
+}
+
+  public void Reachability.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Reachability>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Reachability>");
+}
+
+  public void OpticReflexSwitch.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<OpticReflexSwitch>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</OpticReflexSwitch>");
+}
+
+  public void Fold.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Fold>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Fold>");
+}
+
+  public void PerformSelfTest.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<PerformSelfTest>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</PerformSelfTest>");
+}
+
+  public void LightGrid.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<LightGrid>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</LightGrid>");
+}
+
+  public void Lathe.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Lathe>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Lathe>");
+}
+
+  public void InductiveSensor.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<InductiveSensor>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</InductiveSensor>");
+}
+
+  public void ModifyAmount.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<ModifyAmount>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</ModifyAmount>");
+}
+
+  public void Press.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Press>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Press>");
+}
+
+  public void DecompressImageData.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<DecompressImageData>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</DecompressImageData>");
+}
+
+  public void CompressImageData.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<CompressImageData>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</CompressImageData>");
+}
+
+  public void Hot_galvanise.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Hot_galvanise>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Hot_galvanise>");
+}
+
+  public void Position.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Position>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Position>");
+}
+
+  public void OpticSensor.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<OpticSensor>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</OpticSensor>");
+}
+
+  public void OpticThroughBeamSwitch.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<OpticThroughBeamSwitch>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</OpticThroughBeamSwitch>");
+}
+
+  public void LinearEncoder.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<LinearEncoder>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</LinearEncoder>");
+}
+
+  public void Displace.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Displace>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Displace>");
+}
+
+  public void ArticulatedRobot.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<ArticulatedRobot>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</ArticulatedRobot>");
+}
+
+  public void Turn.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Turn>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Turn>");
+}
+
+  public void Check.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Check>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Check>");
+}
+
+  public void Payload.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Payload>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Payload>");
+}
+
+  public void TransformImage.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<TransformImage>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</TransformImage>");
+}
+
+  public void ParallelGripper.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<ParallelGripper>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</ParallelGripper>");
+}
+
+  public void InsideOrOutsidePicking.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<InsideOrOutsidePicking>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</InsideOrOutsidePicking>");
+}
+
+  public void Electro_discharge_machine.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Electro_discharge_machine>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Electro_discharge_machine>");
+}
+
+  public void MaxVoltageSupply.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<MaxVoltageSupply>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</MaxVoltageSupply>");
+}
+
+  public void ControlSystem.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<ControlSystem>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</ControlSystem>");
+}
+
+  public void Assign.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Assign>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Assign>");
+}
+
+  public void Task.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Task>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Task>");
+}
+
+  public void Robot.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Robot>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Robot>");
+}
+
+  public void PathVelocityFluctuation.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<PathVelocityFluctuation>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</PathVelocityFluctuation>");
+}
+
+  public void CommunicationProtocol.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<CommunicationProtocol>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</CommunicationProtocol>");
+}
+
+  public void LineParallelGripper.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<LineParallelGripper>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</LineParallelGripper>");
+}
+
+  public void MaxScanAngle.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<MaxScanAngle>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</MaxScanAngle>");
+}
+
+  public void UltrasonicDistanceSensor.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<UltrasonicDistanceSensor>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</UltrasonicDistanceSensor>");
+}
+
+  public void StoreUnOrdered.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<StoreUnOrdered>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</StoreUnOrdered>");
+}
+
+  public void Bead.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Bead>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Bead>");
+}
+
+  public void MechanicalResistance.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<MechanicalResistance>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</MechanicalResistance>");
+}
+
+  public void TypeOfFingers.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<TypeOfFingers>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</TypeOfFingers>");
+}
+
+  public void Device.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Device>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Device>");
+}
+
+  public void MaterialOfGripper.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<MaterialOfGripper>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</MaterialOfGripper>");
+}
+
+  public void ScaraRobot.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<ScaraRobot>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</ScaraRobot>");
+}
+
+  public void SimpleKinematicRobot.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<SimpleKinematicRobot>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</SimpleKinematicRobot>");
+}
+
+  public void StoreInOrder.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<StoreInOrder>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</StoreInOrder>");
+}
+
+  public void Cut.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Cut>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Cut>");
+}
+
+  public void UltrasonicSensor.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<UltrasonicSensor>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</UltrasonicSensor>");
+}
+
+  public void ExtractEdges.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<ExtractEdges>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</ExtractEdges>");
+}
+
+  public void AngleGripper.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<AngleGripper>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</AngleGripper>");
+}
+
+  public void CheckPosition.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<CheckPosition>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</CheckPosition>");
+}
+
+  public void EncoderSensor.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<EncoderSensor>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</EncoderSensor>");
+}
+
+  public void Karthesian.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Karthesian>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Karthesian>");
+}
+
+  public void ParallelKinematicRobot.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<ParallelKinematicRobot>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</ParallelKinematicRobot>");
+}
+
+  public void SizeOfGripper.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<SizeOfGripper>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</SizeOfGripper>");
+}
+
+  public void Measure.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Measure>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Measure>");
+}
+
+  public void FilterImage.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<FilterImage>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</FilterImage>");
+}
+
+  public void SegmentImage.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<SegmentImage>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</SegmentImage>");
+}
+
+  public void Unify.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Unify>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Unify>");
+}
+
+  public void PowerConsumption.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<PowerConsumption>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</PowerConsumption>");
+}
+
+  public void ElasticFingerGripper.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<ElasticFingerGripper>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</ElasticFingerGripper>");
+}
+
+  public void NumberOfJoints.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<NumberOfJoints>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</NumberOfJoints>");
+}
+
+  public void MeasureDiameter.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<MeasureDiameter>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</MeasureDiameter>");
+}
+
+  public void ElectrolyticSegregate.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<ElectrolyticSegregate>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</ElectrolyticSegregate>");
+}
+
+  public void Move.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Move>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Move>");
+}
+
+  public void QualityCriteria.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<QualityCriteria>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</QualityCriteria>");
+}
+
+  public void MinAmbientTemperature.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<MinAmbientTemperature>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</MinAmbientTemperature>");
+}
+
+  public void Feed.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Feed>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Feed>");
+}
+
+  public void InductiveProximitySwitch.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<InductiveProximitySwitch>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</InductiveProximitySwitch>");
+}
+
+  public void Scan.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Scan>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Scan>");
+}
+
+  public void ScanningDistance.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<ScanningDistance>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</ScanningDistance>");
+}
+
+  public void Manufacturing.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Manufacturing>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Manufacturing>");
+}
+
+  public void Reset.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Reset>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Reset>");
+}
+
+  public void Release.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Release>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Release>");
+}
+
+  public void JointFingerGripper.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<JointFingerGripper>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</JointFingerGripper>");
+}
+
+  public void EnclosureRatingIP.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<EnclosureRatingIP>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</EnclosureRatingIP>");
+}
+
+  public void MeasureVolume.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<MeasureVolume>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</MeasureVolume>");
+}
+
+  public void TactileSensor.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<TactileSensor>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</TactileSensor>");
+}
+
+  public void CalibrateImage.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<CalibrateImage>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</CalibrateImage>");
+}
+
+  public void Plane.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<Plane>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</Plane>");
+}
+
+  public void PhysicalPropertiesRobot.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<PhysicalPropertiesRobot>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</PhysicalPropertiesRobot>");
+}
+
+  public void FieldOfView.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<FieldOfView>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</FieldOfView>");
+}
+
+  public void WorkCoordinates.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<WorkCoordinates>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</WorkCoordinates>");
+}
+
+  public void MechanicalConnector.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<MechanicalConnector>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</MechanicalConnector>");
+}
+
+  public void MaxLiftWay.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<MaxLiftWay>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</MaxLiftWay>");
+}
+
+  public void CapacitveSensor.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<CapacitveSensor>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</CapacitveSensor>");
+}
+
+  public void AdjustCurrentToGrip.prettyPrint(String indent, PrintStream pStream) {
+    System.out.println(indent+"<AdjustCurrentToGrip>");
+    String childIndent = indent + "  ";
+    for (int i=0; i<getNumElement(); i++) {
+      getElement(i).prettyPrint(childIndent,pStream);
+    }
+    System.out.println(indent+"</AdjustCurrentToGrip>");
+}
+
+}
+