diff --git a/plugins/sysml14/org.eclipse.papyrus.requirement.architecture/resources/papyrusreq.architecture b/plugins/sysml14/org.eclipse.papyrus.requirement.architecture/resources/papyrusreq.architecture
index b188429..dac4c3f 100644
--- a/plugins/sysml14/org.eclipse.papyrus.requirement.architecture/resources/papyrusreq.architecture
+++ b/plugins/sysml14/org.eclipse.papyrus.requirement.architecture/resources/papyrusreq.architecture
@@ -13,6 +13,7 @@
       <representationKinds xsi:type="nattablerepresentation:PapyrusTable" href="#_zDnG8JI1EeeIi5L9EZAlzw"/>
       <representationKinds xsi:type="nattablerepresentation:PapyrusTable" href="#_Cfnr8LP2EeeLo8Gu4FwO3w"/>
     </viewpoints>
+    <elementTypes href="platform:/plugin/org.eclipse.papyrus.requirements.sysml14.common/resource/Requirement.elementtypesconfigurations#org.eclipse.papyrus.requirements.sysml.common.elementTypeSet"/>
     <representationKinds xsi:type="nattablerepresentation:PapyrusTable" xmi:id="_WdWhUI85EeeoX5z29mN4Kg" id="SysMLSatisfactionRequirementMatrix" name="Satisfaction Requirement Matrix" description="This table is a matrix that shows if the element satisfies a requirement" icon="platform:/plugin/org.eclipse.papyrus.sysml14.nattable.requirement/icons/table_SysML_Requirement.png" concerns="_hhXXgIv7EeeNBcglvVZtOQ" implementationID="SysMLSatisfactionRequirementMatrix">
       <modelRules xmi:id="_-v9pgI85EeeoX5z29mN4Kg">
         <element href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.common/META-INF/MANIFEST.MF b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.common/META-INF/MANIFEST.MF
index 04e2018..47c2817 100644
--- a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.common/META-INF/MANIFEST.MF
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.common/META-INF/MANIFEST.MF
@@ -1,15 +1,23 @@
 Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: %Bundle-Name
-Bundle-SymbolicName: org.eclipse.papyrus.requirements.sysml14.common
+Bundle-SymbolicName: org.eclipse.papyrus.requirements.sysml14.common;singleton:=true
 Bundle-Version: 0.7.0.qualifier
 Bundle-Activator: org.eclipse.papyrus.requirements.sysml14.common.Activator
 Bundle-Vendor: %Bundle-Vendor
-Require-Bundle: org.eclipse.gmf.runtime.diagram.ui;bundle-version="1.8.0",
+Require-Bundle: org.eclipse.papyrus.uml.service.types;bundle-version="3.1.0",
+ org.eclipse.papyrus.sysml14;bundle-version="0.9.1",
+ org.eclipse.gmf.runtime.emf.type.core,
+ org.eclipse.papyrus.infra.types.core,
+ org.eclipse.papyrus.infra.services.edit,
+  org.eclipse.papyrus.uml.tools.utils,
+ org.eclipse.gmf.runtime.diagram.ui;bundle-version="1.8.0",
  org.eclipse.papyrus.infra.ui,
  org.eclipse.papyrus.requirements.sysml14.preferences,
- org.eclipse.papyrus.sysml14;bundle-version="0.9.1"
+ org.eclipse.papyrus.uml.types.core
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Bundle-Localization: bundle
-Export-Package: org.eclipse.papyrus.requirements.sysml14.common
+Export-Package: org.eclipse.papyrus.requirements.sysml.common.advices,
+ org.eclipse.papyrus.requirements.sysml.common.command,
+ org.eclipse.papyrus.requirements.sysml14.common
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.common/build.properties b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.common/build.properties
index 4279aa9..32b96f3 100644
--- a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.common/build.properties
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.common/build.properties
@@ -3,5 +3,7 @@
 bin.includes = .,\
                about.html,\
                bundle.properties,\
-               META-INF/
+               META-INF/,\
+               plugin.xml,\
+               resource/
 src.includes = about.html
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.common/plugin.xml b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.common/plugin.xml
new file mode 100644
index 0000000..9d95006
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.common/plugin.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+   <extension
+         point="org.eclipse.papyrus.infra.types.core.elementTypeSetConfiguration">
+      <elementTypeSet
+            clientContextID="org.eclipse.papyrus.infra.services.edit.TypeContext"
+            path="resource/Requirement.elementtypesconfigurations">
+      </elementTypeSet>
+   </extension>
+
+</plugin>
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.common/resource/Requirement.elementtypesconfigurations b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.common/resource/Requirement.elementtypesconfigurations
new file mode 100644
index 0000000..32ced0c
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.common/resource/Requirement.elementtypesconfigurations
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<elementtypesconfigurations:ElementTypeSetConfiguration xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:elementtypesconfigurations="http://www.eclipse.org/papyrus/infra/elementtypesconfigurations/1.2" xmi:id="org.eclipse.papyrus.requirements.sysml.common.elementTypeSet" identifier="org.eclipse.papyrus.requirements.sysml.common.elementTypesconfiguration" name="org.eclipse.papyrus.requirements.sysml.common.elementTypesconfiguration" metamodelNsURI="http://www.eclipse.org/uml2/5.0.0/UML">
+  <adviceBindingsConfigurations xsi:type="elementtypesconfigurations:AdviceBindingConfiguration" xmi:id="_iEqC8HeQEeesoqsNSRk13w" identifier="org.eclipse.papyrus.requirements.sysml.common.advices.RequirementEditHelperAdvice" editHelperAdviceClassName="org.eclipse.papyrus.requirements.sysml.common.advices.RequirementEditHelperAdvice">
+    <target xsi:type="elementtypesconfigurations:MetamodelTypeConfiguration" href="../../../plugin/org.eclipse.papyrus.uml.service.types/model/uml.elementtypesconfigurations#org.eclipse.papyrus.uml.Class"/>
+  </adviceBindingsConfigurations>
+</elementtypesconfigurations:ElementTypeSetConfiguration>
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.common/src/org/eclipse/papyrus/requirements/sysml/common/advices/RequirementEditHelperAdvice.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.common/src/org/eclipse/papyrus/requirements/sysml/common/advices/RequirementEditHelperAdvice.java
new file mode 100644
index 0000000..8d24a36
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.common/src/org/eclipse/papyrus/requirements/sysml/common/advices/RequirementEditHelperAdvice.java
@@ -0,0 +1,43 @@
+/*****************************************************************************
+ * Copyright (c) 2018 CEA LIST and others.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *   CEA LIST - Initial API and implementation
+ *   
+ *****************************************************************************/
+
+package org.eclipse.papyrus.requirements.sysml.common.advices;
+
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.papyrus.infra.emf.gmf.command.EMFtoGMFCommandWrapper;
+import org.eclipse.papyrus.requirements.sysml.common.command.SetRequirementIdCommand;
+import org.eclipse.papyrus.requirements.sysml14.common.Utils;
+import org.eclipse.papyrus.uml.types.core.requests.ApplyStereotypeRequest;
+import org.eclipse.uml2.uml.Stereotype;
+
+/**
+ * This advice has in charge to update the id of the requirement.
+ *
+ */
+public class RequirementEditHelperAdvice extends org.eclipse.papyrus.uml.types.core.edithelper.DefaultUMLEditHelperAdvice{// org.eclipse.papyrus.uml.types.core.edithelper.DefaultUMLEditHelperAdvice{//org.eclipse.gmf.runtime.emf.type.core.edithelper.AbstractEditHelperAdvice{//
+
+		/**
+		 * @see org.eclipse.papyrus.uml.types.core.edithelper.DefaultUMLEditHelperAdvice#getAfterApplyStereotypeCommand(org.eclipse.papyrus.uml.types.core.requests.ApplyStereotypeRequest)
+		 *
+		 * @param req
+		 * @return
+		 */
+		@Override
+		protected ICommand getAfterApplyStereotypeCommand(ApplyStereotypeRequest req) {
+			 Stereotype appliedStereotype=req.getStereotype();
+			 if(Utils.isRequirementStereotype(appliedStereotype)) {
+		            return new EMFtoGMFCommandWrapper(new SetRequirementIdCommand(req.getEditingDomain(),  req.getUmlElement()));
+		        }
+		        return super.getAfterApplyStereotypeCommand(req);
+		}
+}
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.common/src/org/eclipse/papyrus/requirements/sysml/common/command/SetRequirementIdCommand.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.common/src/org/eclipse/papyrus/requirements/sysml/common/command/SetRequirementIdCommand.java
new file mode 100644
index 0000000..97b1b74
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.common/src/org/eclipse/papyrus/requirements/sysml/common/command/SetRequirementIdCommand.java
@@ -0,0 +1,53 @@
+/*****************************************************************************
+ * Copyright (c) 2016 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * 
+ * 		Mauricio Alferez (mauricio.alferez@cea.fr) CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.requirements.sysml.common.command;
+
+import org.eclipse.emf.transaction.RecordingCommand;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.papyrus.requirements.sysml14.common.I_SysMLStereotype;
+import org.eclipse.papyrus.requirements.sysml14.common.Utils;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Stereotype;
+
+/**
+ * Set Id to all sub requirement from a package by taking as prefix the name of the package
+ *
+ */
+public class SetRequirementIdCommand extends RecordingCommand {
+	protected org.eclipse.uml2.uml.Element selectedElement;
+	protected TransactionalEditingDomain domain;
+
+
+	public SetRequirementIdCommand(TransactionalEditingDomain domain, Element selectedElement) {
+		super(domain, "PapyrusReqSysMLRequirementCreateCommand");
+		this.selectedElement = selectedElement;
+	}
+
+	protected void setID(org.eclipse.uml2.uml.Class  reqclass, String text) {
+		Stereotype reqStereotype = reqclass.getApplicableStereotype(I_SysMLStereotype.REQUIREMENT_STEREOTYPE);
+		String id = Utils.getNewRequirementID(reqclass.getOwner());
+		reqclass.setName(id);
+		reqclass.setValue(reqStereotype, I_SysMLStereotype.REQUIREMENT_ID_ATT, id);
+	}
+
+	@Override
+	protected void doExecute() {
+		if (selectedElement instanceof Class) {
+			setID((Class) selectedElement, "");
+		}
+	}
+
+}
\ No newline at end of file
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.common/src/org/eclipse/papyrus/requirements/sysml14/common/Utils.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.common/src/org/eclipse/papyrus/requirements/sysml14/common/Utils.java
index 6ff5bb8..a1be73e 100644
--- a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.common/src/org/eclipse/papyrus/requirements/sysml14/common/Utils.java
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.common/src/org/eclipse/papyrus/requirements/sysml14/common/Utils.java
@@ -28,6 +28,7 @@
 import org.eclipse.uml2.uml.Element;
 import org.eclipse.uml2.uml.Package;
 import org.eclipse.uml2.uml.Profile;
+import org.eclipse.uml2.uml.Stereotype;
 import org.eclipse.uml2.uml.util.UMLUtil;
 
 public class Utils {
@@ -36,6 +37,24 @@
 	}
 
 	/**
+	 * test if the stereotype is a SysML Requirement Stereotype
+	 * @param stereotype a given stereotype
+	 * @return return true if this is a SysML stereotype or inherits directly or indirectly from requirement
+	 */
+	public static boolean isRequirementStereotype(Stereotype stereotype) {
+		if( I_SysMLStereotype.REQUIREMENT_STEREOTYPE.equals(stereotype.getQualifiedName())){
+			return true;
+		}
+		for(org.eclipse.uml2.uml.Class superStereotype : stereotype.getSuperClasses()) {
+			if( superStereotype instanceof Stereotype){
+				if(isRequirementStereotype((Stereotype)superStereotype)){
+					return true;
+				}
+			}
+		}
+		return false;
+	}
+	/**
 	 * @param elem
 	 *            UML model element
 	 * @return the highest level Package of the element
