internal static void SetDesign(Asset element, Design newDesign)
		{
			DslModeling::DomainRoleInfo.SetLinkedElement(element, AssetDomainRoleId, newDesign);
		}
		/// <summary>
		/// Constructor
		/// Creates a DesignHasAssets link in the same Partition as the given Design
		/// </summary>
		/// <param name="source">Design to use as the source of the relationship.</param>
		/// <param name="target">Asset to use as the target of the relationship.</param>
		internal DesignHasAssets(Design source, Asset target)
			: base((source != null ? source.Partition : null), new DslModeling::RoleAssignment[]{new DslModeling::RoleAssignment(DesignHasAssets.DesignDomainRoleId, source), new DslModeling::RoleAssignment(DesignHasAssets.AssetDomainRoleId, target)}, null)
		{
		}
		internal static Design GetDesign(Asset element)
		{
			return DslModeling::DomainRoleInfo.GetLinkedElement(element, AssetDomainRoleId) as Design;
		}
		internal static DslModeling::ReadOnlyLinkedElementCollection<ProductionTool> GetAllProducingTools(Asset element)
		{
			return GetRoleCollection<DslModeling::ReadOnlyLinkedElementCollection<ProductionTool>, ProductionTool>(element, AssetDomainRoleId);
		}